是否可以打印free()想要释放内存的值?

时间:2013-09-20 08:07:31

标签: c memory memory-management

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

即使它有效,它根本不可移植。标准对此没有任何说明。

这取决于实现,你不能依赖它。

答案 2 :(得分:2)

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

mallocfree的工作原理取决于操作系统。每个OS的每个版本都可以以不同方式执行此操作。