probleme avec pointeurs de pointeurs de pointeurs
Bonjour a tous,
j'ai un ennui dans mon application :
j'alloue de grandes quantités de mémoire (>1Go).
j'utilise pour ça des pointeurs de pointeurs de pointeurs...
que j'initialise de cette façon :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
BYTE *** tab1;
this->tab1=new BYTE**[this->nbC];
for(int i=0;i<nbC;i++)
{
this->tab1[i]=new BYTE*[this->nbImg];
for(int j=0;j<nbImg;j++)
{
this->tab1[i][j]=new BYTE[this->tailleImg];
memset(this->tab1[i][j],0,this->tailleImg);
}
} |
L'allocation fonctionne bien ainsi que le travail sur les zones mémoires.
Je désalloue de la façon suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
for(int j=0;j<this->nbc;j++)
{
for(int i=0;i<this->nbImg;i++)
{
delete[] this->tab1[j][i];
this->tab1[j][i]=NULL;
}
delete[] this->tab1[j];
this->tab1[j]=NULL;
}
delete[] this->tab1;
this->tab1=NULL; |
Mais par la suite, je ne peux plus réallouer de la mémoire supérieure à 1.4Go...
un message apparait indiquant "mémoire insuffisante".
pourtant le programme n'est pas arrivé à la limite des 2 Go
Hors mon application doit tourner en boucle et réallouer continuellement de la mémoire....
Un conseil ou une idée sur le probleme?
Edit : coquille "nbImg" corrigé