gpt4 book ai didi

c++ - 指向对象的指针列表中的内存泄漏

转载 作者:太空宇宙 更新时间:2023-11-03 10:32:30 25 4
gpt4 key购买 nike

我有一个指向对象的指针列表。

 std::list<X*> xList;

我只需要列表的大小,所以我的方法会填充此列表并对其调用 size(),然后返回大小。

注意:我知道这不是最好的解决方案,但我使用的 API 提供了一个包含动态分配对象的列表,这是我能做到的唯一方法。

现在 valgrind 说这里有内存泄漏。我假设这是因为我从不删除列表中的对象。

我想我会这样做:

std::list<X*>::iterator iter;
for (iter = xList.begin(); iter != xList.end(); ++iter)
{
delete (*iter);
}

但这是最好的解决方案吗?

最佳答案

不,最好的解决方案是拥有一个 std::list<std::unique_ptr<X>>反而。现在对象会在适当的时候自行删除,您不必担心。当 std::list被摧毁,X它拥有的对象也被销毁。

关于c++ - 指向对象的指针列表中的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12584815/

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