我从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个allocs,6个free呢?我好像没有在某个地方释放一些记忆。我检查了代码,有3个全局常量指针。也许他们不被认为是错误,但印刷的不是免费的?
我应该担心这个还是应该考虑无代码窃听?
谢谢大家。
……只是试图理解ansi c在指针和内存分配方面的所有麻烦:))
箴言
最佳答案
在Valgrind网站http://valgrind.org/docs/manual/quick-start.html#quick-start.interpret
“绝对丢失”:你的程序正在泄漏内存——修复它!
“可能丢失”:你的程序正在泄漏内存,除非你正在
有指针的有趣的事情(比如把指针移到中间
堆块)。
所以对你来说你的程序应该是好的。