gpt4 book ai didi

C++ Valgrind 会将剩余的分配内存检测为泄漏吗?

转载 作者:太空宇宙 更新时间:2023-11-04 13:23:09 25 4
gpt4 key购买 nike

我正在使用 C++ 编写程序,该程序需要使用 new 分配的动态内存。我有一个用户可以关闭程序的情况,但我没有包括删除所有剩余内存。

注意:此内存由关闭时全部存在的对象指针列表跟踪,因此没有内存“丢失”。

如果我在关闭前不清理数组,valgrind 是否会认为剩余内存是泄漏内存?

另一个问题是,如果我/do/循环我的对象数组并在程序关闭前删除所有内存,Valgrind 是否能够确定是否有任何内存泄漏?

编辑

我确实循环并释放了所有内存,现在 Valgrind 说我没有泄漏。这可信吗?

最佳答案

如果你泄漏内存,你就会泄漏内存,valgrind(通常)会检测并报告它。保持指针直到程序终止还不够好(说服 valgrind)。如果你真的、真的需要做那样的事情,你可以使用一个“池”(例如 Boost.Pool)来分配,然后在你的程序结束时释放整个池一次。

既然您已经说过您有一个循环并删除所有内容的解决方案,那就太好了。就这样吧。如果您在关闭时遇到性能问题,请考虑使用池方法。

关于C++ Valgrind 会将剩余的分配内存检测为泄漏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34279279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com