Valgrind结果干净但是分配比释放更多

时间:2012-12-08 01:10:11

标签: c pointers memory-leaks heap valgrind

我从Valgrind那里得到这个结果:

    ==24810== HEAP SUMMARY:
    ==24810==     in use at exit: 0 bytes in 0 blocks
    ==24810==   total heap usage: 9 allocs, 6 frees, 0 bytes allocated
    ==24810== 
    ==24810== LEAK SUMMARY:
    ==24810==    definitely lost: 0 bytes in 0 blocks
    ==24810==    indirectly lost: 0 bytes in 0 blocks
    ==24810==      possibly lost: 0 bytes in 0 blocks
    ==24810==    still reachable: 0 bytes in 0 blocks
    ==24810==         suppressed: 0 bytes in 0 blocks

它说没有记忆被泄露。它看起来是一个好结果。但是,这些 9个分配,6个释放呢?看起来我某处没有释放一些记忆。我检查了代码,并且有3个全局const指针。也许他们不被视为错误,但打印为不自由?

我应该担心这个还是我应该认为代码没有问题? 谢谢你们。 ....只是试图理解ANSI C使用指针和内存分配的所有麻烦:)))

格言

1 个答案:

答案 0 :(得分:0)

在valgrind网站http://valgrind.org/docs/manual/quick-start.html#quick-start.interpret

  

“肯定输了”:你的程序正在泄漏内存 - 修复它!

     

“可能已经丢失”:你的程序正在泄漏记忆,除非你正在做   有趣的东西与指针(如移动它们指向中间   堆块)。

因此,对于您的情况,您的计划应该是好的。