我四处搜索,但似乎没有答案,所以我决定在这里问一下。所以我使用 valgrind 检查我的程序,这是结果
==24810== HEAP SUMMARY:
==24810== in use at exit: 1,478 bytes in 30 blocks
==24810== total heap usage: 50 allocs, 20 frees, 43078 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: 1,478 bytes in 30 blocks
==24810== suppressed: 0 bytes in 0 blocks
这是泄漏吗? 如果是这样,可能是什么原因?
最佳答案
这不是真正的泄漏,因为分配的 30 个额外 block 仍然可以访问。看来您未能在程序运行结束时释放某些结构。请注意,运行时库有时会在末尾留下一些已分配的对象,但这不像是其中一种情况。
关于C++ valgrind 比释放更多的分配没有泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37621654/