malloc - In C, free half of the memory chunk, without freeing the other half -
if have allocated memory chunk
char *a =(char*)malloc(sizeof(char)*10); and
strcpy( "string of len 5",a); then there way free left on part of memory chunk?
in other scenario if
strcpy("string of len5", (a+5)); then first half empty. there way free() first part without deallocating second half?
please don't suggest realloc() allocates new chunk of memory copy content there , release previous.(akaik).
no, there no way can free() half or part of dynamically allocated memory. need free() all @ time.
while getting memory through dynamic memory allocation, pointer. need pass exact pointer free(). passing pointer free() not returned malloc() or family, undefined behaviour.
fyi, see related answer.
Comments
Post a Comment