Pourkoi ca marche pas ?
A l'execution VC6 m affiche acces violation des le premier passage dans la boucle
float ***data;
for(i=0;i<truc;i++)
{
for(j=0;j<deltaY;j++)
{
data[i][j] = new float[deltaX];
}
}
Pourkoi ca marche pas ?
A l'execution VC6 m affiche acces violation des le premier passage dans la boucle
float ***data;
for(i=0;i<truc;i++)
{
for(j=0;j<deltaY;j++)
{
data[i][j] = new float[deltaX];
}
}
PS: Je le dis moi-même pour éviter qu'un gourou vienne te le dire: "utilise des std::vector à la place"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 float ***data; data = new float**[truc]; for(i=0;i<truc;i++) { date[i] = new float*[deltaY]; for(j=0;j<deltaY;j++) { data[i][j] = new float[deltaX]; } }
(bon, moi, je viens du C, je préfère aussi le tableau de tableaux de tableaux)
dans data[i][j], je ne vois que deux dimensions...
ok merci ca marche
normal, c'est juste pour l'allocationEnvoyé par poukill
Je suis plutôt partisan de l'allocation d'un gros buffer wrappé dans une classe qui gèrera l'accès correctement. Ca évite des problèmes de performances et de cache à cause du fractionnement de la mémoire.
au temps pour moi....
Pas mal ton idée de buffer... Bien sur, de l'idée au programme, y'a un monde, mais c'est une bonne idée!
En parlant d'un gros buffer "wrappé", tu fais allusion a kelke chose de precis ou c du fantasme, voir de la divagation artistique?
Meuh non. Tout de suite.Envoyé par Médinoc
boost.multi_array ou n'importe qu'elle classe matricielle sera plus adaptée
Et avoue qu'avec un background C tu aurais plutôt alloué de la sorte:
Tiens. Je n'avais pas lu l'intégralité de la discussion. J3 ^^'3n v415 d1v46u3r 4v3c ^^1||35.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 const size_t offset = sizeof(float*)*L; char * buffer = new char[sizeof(float) * L*C + offset]; float ** mat = reinterpret_cast<float**>(buffer); for (int l=0 ; l!=L ;++l) mat[l] = reinterpret_cast<float*>(buffer[offset + C*l*sizeof(float)]); // si il y a des des erreurs dans le code, cela ne fait que démontrer // que ce genre de hacks bas niveau doivent être encapsulés. // Et puisqu'on en parle .. les bibliothèques matricielles qui existent // déjà sont nos amies.
EDIT: Mon 3|337 prend la poussière.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager