1

当我们执行 malloc() 时,会分配内存并返回基地址。如果我调用 free(),它将释放 malloc() 分配的内存。我怀疑free分配的字节数将保留在基地址之外,free()将检查该数字并释放分配的内存。那么是否可以打印该值(分配的字节数)。

4

3 回答 3

3

应用程序需要跟踪分配给指针的字节数,以及该内存是否已被free()再次编辑。

在 C 中,没有可移植的方法来通过指针本身检索分配给指针的内存量。

于 2013-09-20T08:11:25.843 回答
2

即使它有效,它也不会是可移植的。标准对此只字未提。

它依赖于实现,你不能依赖它。

于 2013-09-20T08:10:24.160 回答
2

当您使用时,malloc您会获得所需的内存量或null指针。所以此时你知道字节数,如果你想使用它,你需要保存它。

如何mallocfree工作取决于操作系统。每个操作系统的每个版本都可以不同地执行此操作。

于 2013-09-20T08:13:58.380 回答