当我们执行malloc()时,将分配内存并返回基址。如果我调用free(),它将释放malloc()分配的内存。我怀疑的是,除了baseaddress之外,free保留的字节数将被保留,free()将检查该数字并释放分配的内存。因此可以打印该值(分配的字节数)。
答案 0 :(得分:3)
应用程序需要跟踪分配给指针的字节数,以及该内存是否已经再次free()
。
在C中,没有可移植的方法来检索通过指针自己分配给指针的内存量。
答案 1 :(得分:2)
即使它有效,它根本不可移植。标准对此没有任何说明。
这取决于实现,你不能依赖它。
答案 2 :(得分:2)
当您使用malloc
时,您将获得所需的内存量或null
指针。
所以在这一点上你知道字节数,如果你想使用它你需要保存它。
malloc
和free
的工作原理取决于操作系统。每个OS的每个版本都可以以不同方式执行此操作。