1

我只是在测试我正在编写的一些 c 代码,我发现我有很多内存泄漏,所以我想看看它们是从哪里来的。我所有的代码是:

int main() {
    return 0;
}

只是一个简单的 main 什么也没做,我有所有这些内存泄漏:

==38882== HEAP SUMMARY:
==38882==     in use at exit: 58,678 bytes in 363 blocks
==38882==   total heap usage: 514 allocs, 151 frees, 62,544 bytes allocated
==38882== 
==38882== LEAK SUMMARY:
==38882==    definitely lost: 8,624 bytes in 14 blocks
==38882==    indirectly lost: 1,168 bytes in 5 blocks
==38882==      possibly lost: 4,925 bytes in 68 blocks
==38882==    still reachable: 43,961 bytes in 276 blocks
==38882==         suppressed: 0 bytes in 0 blocks
==38882== Rerun with --leak-check=full to see details of leaked memory
==38882== 
==38882== For counts of detected and suppressed errors, rerun with: -v
==38882== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

当我在我大学的计算机上运行此代码时,我没有内存泄漏。我的本地机器上是否有什么东西导致了这么多内存泄漏?

4

2 回答 2

1

没事。您的程序使用运行时库(即libc或等效的)并且该库为自己的需要分配一些内存。

于 2013-04-12T23:05:16.400 回答
0

我在我的 Mac 上遇到同样的错误。这要么是 valgrind 问题,要么(更有可能)是 Mac 上的库问题。我建议仅在 Linux 上使用 valgrind。

于 2013-04-12T23:01:02.073 回答