[ ljube @ 03.08.2008. 20:14 ] @
Primjer ispod je jedan cirkularni bafer koji pravi do 2048 dinamickih alokacija memorije. Ako se zauzme svih 2048 pointera, ponovo se vraca na 0 i cisti/alocira novu memnoriju. Code: char *DYN_TmpStr (size_t Bites) { static int StrCnt; static char *StrFunc[2048]; StrCnt=(StrCnt + 1) & 2047; if(StrFunc[StrCnt]) free (StrFunc[StrCnt]); return StrFunc[StrCnt]=(char*)calloc(Bites+128,sizeof(char)); } Problem je sto sam ja mislio da svaki poziv calloc zahtijeva i free. Rekli su mi da ne mora, i da ce sam OS da ocisti memoriju kada se program prekine. Da li je ovo tacno ili se radi o mem leak? |