free() 如何得知要释放的内存大小?


free() 函数用于取消在使用 malloc()、calloc() 和 realloc() 分配的内存。free() 的语法很简单。我们只需使用带指针的 free。然后可以清理内存。

free(ptr);

free() 不将任何大小作为参数,而只有指针。因此 возникает вопрос:free() 函数如何了解要取消分配的块的大小?

当我们使用动态内存分配技术进行内存分配时,这在实际堆部分中完成。它创建的字比请求的大小大一个字。这个额外的字用于存储大小。当 free() 要清除内存空间时,将使用此大小。

更新日期:2019 年 7 月 30 日

2K+ 浏览量

开启你 职业生涯

完成课程,获得认证

开始
广告