C++ 瓦尔格林德 分配比没有泄漏的免费分配更多

C++ valgrind More allocs than frees with no leaks

本文关键字:分配 泄漏 免费 林德 C++      更新时间:2023-10-16

我四处寻找,但似乎没有答案,所以我决定在这里问。所以我用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 个额外块仍然可以访问。 您似乎未能在程序运行结束时释放某些结构。 请注意,运行时库有时会在最后留下一些分配的对象,但这感觉不像是其中一种情况。

不是泄漏,它只是意味着某些内存块在终止时仍然可以访问。要查找真正的内存泄漏,请查看"肯定丢失"和"间接丢失"

请参阅此帖子: 瓦尔格林德检测到的仍然可以到达的泄漏