c - What is the scope of free() in dynamically allocated memory? -
let's have next code:
typedef struct { int numbars; bartype *bars; } footype; foo = (footype *) malloc(sizeof(footype)); foo->bars = (bartype *) malloc(sizeof(bartype)); will calling free(foo) free bars or need this:
free(foo->bars); free(foo); intuitively, sense calling free(foo) should plenty - if don't need phone call free(foo->numbars) shouldn't need phone call free(foo->bars). didn't have manually allocate memory numbars, while did bars.
for every malloc need 1 free. nil done "automatically" you.
note that, contrary claim, not have allocate memory bars, don't have allocate memory numbars. however, are allocating memory *bars.
a single star can create big difference in c...
c malloc free dynamic-memory-allocation dynamic-allocation
No comments:
Post a Comment