我正在我的程序上运行valgrind,得到以下输出(我将省略上面的83个错误,让我知道是否应该将它们包含在日志中):
==9723== LEAK SUMMARY:
==9723== definitely lost: 0 bytes in 0 blocks
==9723== indirectly lost: 0 bytes in 0 blocks
==9723== possibly lost: 4,676 bytes in 83 blocks
==9723== still reachable: 88,524 bytes in 579 blocks
==9723== suppressed: 0 bytes in 0 blocks
==9723== Reachable blocks (those to which a pointer was found) are not shown.
==9723== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==9723==
==9723== For counts of detected and suppressed errors, rerun with: -v
==9723== ERROR SUMMARY: 83 errors from 83 contexts (suppressed: 3 from 3)
这是我从valgrind得到的输出,不管我运行程序多长时间,不管是2秒还是2分钟。
因为“可能丢失”不会随着时间的推移而增加,所以可以安全地假设我没有内存泄漏吗?
所有的错误似乎都来自于libglib,围绕着g嫒malloc0和g嫒realloc。
最佳答案
Possibly lost
valgrind中的错误包括涉及指针链的场景子集。我肯定会追查这个问题的原因,直到你能确认这不是问题(至少,你的内存占用不应该增加),因为它可以指示你的代码中的其他逻辑问题。
Thispost有一个更详细的答案。
有关更多信息,您还可以查看valgrind手册中的relevant section。
关于c - Valgrind:内存泄漏还是没有?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20848754/