C语言 瓦尔格林德结果干净,但分配多于自由



我从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 个全局常量指针。也许它们不被视为错误,但打印为不自由?

我应该担心这个还是应该认为代码没有错误?谢谢大家。....只是试图理解 ANSI C 与指针和内存分配的所有麻烦 :)))

格言

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

"肯定丢失":您的程序正在泄漏内存 - 修复它!

"可能丢失":您的程序正在泄漏内存,除非您正在 带有指针的有趣事情(例如将它们移动到中间 的堆块)。

因此,对于您的情况,您的程序应该很好。

最新更新