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

📅  最后修改于: 2021-05-26 03:03:35             🧑  作者: Mango

考虑以下free()函数原型,该原型用于释放使用malloc()calloc()realloc()分配的内存

void free(void *ptr);

请注意,自由函数不接受大小作为参数。 free()函数如何仅通过一个指针就知道要释放多少内存?

以下是存储内存大小的最常用方法,以便free()知道要释放的内存大小。
完成内存分配后,分配的实际堆空间比请求的内存大一个字。多余的字用于存储分配的大小,以后由free()使用

参考:
http://www.cs.cmu.edu/afs/cs/academic/class/15213-f10/www/lectures/17-allocation-basic.pptx
http://en.wikipedia.org/wiki/Malloc

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。