Goran Arandjelovic naravno da mora da bude na heap-u da bi prosao delete u prvoj liniji funkcije.
void Fu(int *x, int *n)
{
delete []x;
x = new int [10];
for(int i=0; i<10; i++)
x[i]=i+1;
*n=10;
};
int _tmain(int argc, _TCHAR* argv[])
{
int n;
int* niz=new int[3];
Fu(niz,&n);
for(int i = 0; i < n; i++)
std::cout << niz[i] << std::endl;
delete[] niz; //recimo odavde mi vise nece trebati niz pa sam ga delet-ovao.
system("PAUSE");
return 0;
}
Da ne bi bilio leak-a kada se zavrsi koriscenje niz-a uradi se delete[] niz; kao sto sam naveo u kodu, i vise nema memory leak-a, bar ja nisam imao problema sa ovim. Ako postoji neko sigurnije resenje za ovaj problem dajte ga da zamenim ovo nesigurno resenje.
Sto ste napali moje resenje ;), nego, ako postoji drugo resenje zanima me.
[Ovu poruku je menjao SkyDiverX dana 09.06.2008. u 18:55 GMT+1]