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

free()同时使用分配的功能是用来释放内存malloc()calloc()realloc()。free的语法很简单。我们只需将free与指针一起使用。然后可以清理内存。

free(ptr);

free()没有任何规模大小取作参数,但只有指针。所以问题来了,free()函数如何知道要释放的块的大小?

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