[ winterrr @ 14.05.2016. 19:30 ] @
postovanje
Imam jedno pitanje u vezi oslobadjanja dinamicni alocirane memorije, problem je sledeci
napravio sam "polu-dinamicku" matricu tj staticki niz pokazivaca koji izgleda ovako
int* A[12], sve to radi ok samo kad treba da oslobodim memoriju na kraju programa visual studio 2013 prijavi neku gresku i blokira program.
oslobadjanje memorije sam radio ovako
Code:
for(i=0;i<12;++i)
free(A[i]);

interesuje me kao bi mogli da mi kazete da li je ovaj nacin dobar ili ako nije u cemu je problem

EDIT: X Files : Code tagovi...

[Ovu poruku je menjao X Files dana 16.05.2016. u 15:48 GMT+1]
[ Rapaic Rajko @ 16.05.2016. 08:30 ] @
Imas for petlju po i, a nisi stavio index u poziv free().

Takodje, oslobadjanje pokazivaca pozivas samo ako si ih alocirao; ako nisu alocirani, onda ih postavi na null (sto je indikator da taj pokazivac nema sadrzaj).

Pozz
[ djoka_l @ 16.05.2016. 08:34 ] @
Prvo, stavi sors između tagova [ code ] i [ /code ], pa ti neće indeks po i pretvoriti u italic
Code:
 
for(i=0;i<12;++i)
free(A[i]);


Drugo
Citat:
prijavi neku gresku i blokira program.


To što tebi poruka ne znači ništa, nije razlog da nama ne kažeš, jer nama verovatno znači (a treba i tebi).

Treće, daj malo veći primer KOJI NE RADI, pa da vidimo gde grešiš.
[ winterrr @ 17.05.2016. 15:03 ] @








[Ovu poruku je menjao winterrr dana 17.05.2016. u 21:26 GMT+1]

[Ovu poruku je menjao winterrr dana 17.05.2016. u 21:26 GMT+1]
[ jablan @ 17.05.2016. 16:09 ] @
Davno sam programirao u jeziku sa ručnim memory managementom, ali mi se čini da ti je poslednji free višak, jer sam niz pointera ne alociraš dinamički, pa nema potrebe dealocirati ga. malloc i free treba da budu upareni kao zagrade. :)
[ winterrr @ 17.05.2016. 17:24 ] @
ok, to je greska (posto mi je trebao kod koji radi napravio sam cisto dinamicku matricu pa je za nju taj free bio potreban) ali je problem to sto program pukne kod onog free gde se oslobadjaju nizovi u tom statickom nizu tj
Code:
free(posete[i])
[ djoka_l @ 17.05.2016. 17:50 ] @
na kom 'i' pukne?
Ti nigde ne proveravaš da li je alociran prostor za taj mesec.
[ Rapaic Rajko @ 18.05.2016. 08:02 ] @
Citat:
Rapaic Rajko:
Takodje, oslobadjanje pokazivaca pozivas samo ako si ih alocirao; ako nisu alocirani, onda ih postavi na null (sto je indikator da taj pokazivac nema sadrzaj).