【发布时间】:2021-03-09 16:31:59
【问题描述】:
我想知道是否有办法知道当前使用的 malloc 内存的大小,以便我可以在运行测试之前和之后进行比较,以确保所有内存都已被释放。像这样的:
size_t nmembytes_before = malloc_bytes_allocated();
... do your tests ...
size_t nmembytes_after = malloc_bytes_allocated();
if (nmembytes_before != nmembytes_after)
{
... error reporting ...
}
这样的事情是否存在,或者我们是否被降级为使用 valgrind 进行所有内存分析?
【问题讨论】:
-
您可以轻松地为
malloc和free编写自己的简单包装器来进行会计处理。 -
这是个好主意。调用 my_malloc 时很容易添加到计数中,但调用 my_free 时很难从计数中减去(因为对象的大小无法从指针中轻松确定)
-
你也可以考虑使用
valgrind运行你的测试
标签: c malloc heap-memory