C “怎么做?”;“免费”;知道需要释放多少字节
可能重复:C “怎么做?”;“免费”;知道需要释放多少字节,c,C,可能重复: 在C语言中,函数malloc接受一个参数,指定要分配的字节数。 然而,free函数不接受任何参数,只接受一个指针。 free如何知道它必须释放多少字节?分配大小等信息保存在内存分配器本身中 在内部,有一些数据结构保存着所有活动内存分配、大小和地址的列表。它的具体工作原理相当复杂,因为有许多不同的内存分配算法适用于不同的用途和分配大小 通常情况下,大小作为固定偏移量存储在malloc()返回的地址的正下方,但这只是一个实现细节。一种相当常见的方法是,分配将分配增加sizeof(siz
在C语言中,函数malloc接受一个参数,指定要分配的字节数。 然而,free函数不接受任何参数,只接受一个指针。
free如何知道它必须释放多少字节?分配大小等信息保存在内存分配器本身中 在内部,有一些数据结构保存着所有活动内存分配、大小和地址的列表。它的具体工作原理相当复杂,因为有许多不同的内存分配算法适用于不同的用途和分配大小
通常情况下,大小作为固定偏移量存储在malloc()返回的地址的正下方,但这只是一个实现细节。一种相当常见的方法是,分配将分配增加sizeof(size\t),并在开始时存储长度,然后返回指向分配的其余内存的指针。释放记忆只需要查看隐藏的长度