free() 如何得知要释放的内存大小?
free() 函数用于取消在使用 malloc()、calloc() 和 realloc() 分配的内存。free() 的语法很简单。我们只需使用带指针的 free。然后可以清理内存。
free(ptr);
free() 不将任何大小作为参数,而只有指针。因此 возникает вопрос:free() 函数如何了解要取消分配的块的大小?
当我们使用动态内存分配技术进行内存分配时,这在实际堆部分中完成。它创建的字比请求的大小大一个字。这个额外的字用于存储大小。当 free() 要清除内存空间时,将使用此大小。
广告