int main(void)
{
int *a = malloc(10);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如何在不使用的情况下释放内存free()?
Abh*_*ogi 14
从联机帮助页:
realloc()函数将ptr指向的内存块的大小更改为size字节.内容将在从区域开始到新旧尺寸的最小范围内保持不变.如果新大小大于旧大小,则不会初始化添加的内存.如果ptr为NULL,则对于所有size值,调用等效于malloc(size); 如果size等于零,并且ptr不为NULL,则该调用等效于free(ptr).除非ptr为NULL,否则必须由之前调用malloc(),calloc()或realloc()返回.如果指向的区域被移动,则完成自由(ptr).
因此,您需要调用大小为0的realloc().
realloc(a, 0);
Run Code Online (Sandbox Code Playgroud)