Evo, prvo sam primer sveo na svega 6 linija, zatim sam iz klase uklonio funkcije koje ne koristim, i dosao do destructora, i bingo.
Ja mislim da je problem ovde, imam sledece u klasi:
Code:
array **pointer;
To predstavlja niz pointera na objekte klase 'array'.
U konstruktoru ide:
Code:
pointer=0;
Taj niz alociram ovako:
Code:
pointer = (array **) malloc ( count * sizeof(array *) );
count je duzina niza.
Dakle, tu smestam pointere na objekte, to je niz pointera!
Posle alociranja uradim
Code:
for (int i=0; i<count; i++) pointer[i]=0;
Tako kasnije znam da li pointer pokazuje na neki objekat, kada je 0 to znaci da ne pokazuje na nista.
E sad, objekte kreiram ovako:
Code:
if (pointer[n]!=0)
pointer[n] = new array;
Mislim da u sledecem kodu gresim, to je destruktor objekta, i on izgleda ovako:
Code:
for (int i=0; i<count; i++)
if (pointer[i]!=0)
delete pointer[i];
if (pointer!=0)
free (pointer);
Da li gresim negde kod dealokacije niza pointer-a?
P.S. niz ponekad resize-ujem, pa zato koristim malloc/realloc/free za njega.
Za objekte koristim new i delete, posto njih ne resize-ujem :)