gpt4 book ai didi

c - free如何知道要释放的内存大小?

转载 作者:行者123 更新时间:2023-11-30 15:59:42 25 4
gpt4 key购买 nike

Possible Duplicate:
C programming : How does free know how much to free?

free() 如何知道要释放多少内存(之前由 malloc() 或 calloc() 分配)?我的意思是,这两个函数都接收大小作为参数,而 free 只需要指向已分配内存的指针。那么 free() 如何知道要释放多少呢?

最佳答案

你不需要知道。

它可以使用任何机制,这取决于实现标准库的人员来决定。

一种典型的方法是在指针返回到应用程序之前的某个位置存储 block 信息,但您也可以使用完全独立的数据结构来跟踪分配,也许是某种将指针用作键的树查找描述该分配的信息。

如果你真的想了解、学习,你当然可以阅读开源 C 标准库实现的源代码,其中至少有几个。

关于c - free如何知道要释放的内存大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8518769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com