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];
}
}
Version imprimable
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:
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'allocation ;)Citation:
Envoyé 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.
:aie: 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.Citation:
Envoyé par Médinoc
boost.multi_array ou n'importe qu'elle classe matricielle sera plus adaptée :P
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:
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.