当我们执行 malloc() 时,会分配内存并返回基地址。如果我调用 free(),它将释放 malloc() 分配的内存。我怀疑free分配的字节数将保留在基地址之外,free()将检查该数字并释放分配的内存。那么是否可以打印该值(分配的字节数)。
问问题
72 次
3 回答
3
应用程序需要跟踪分配给指针的字节数,以及该内存是否已被free()
再次编辑。
在 C 中,没有可移植的方法来通过指针本身检索分配给指针的内存量。
于 2013-09-20T08:11:25.843 回答
2
即使它有效,它也不会是可移植的。标准对此只字未提。
它依赖于实现,你不能依赖它。
于 2013-09-20T08:10:24.160 回答
2
当您使用时,malloc
您会获得所需的内存量或null
指针。所以此时你知道字节数,如果你想使用它,你需要保存它。
如何malloc
和free
工作取决于操作系统。每个操作系统的每个版本都可以不同地执行此操作。
于 2013-09-20T08:13:58.380 回答