我有一个指向对象的指针列表。内存泄漏到指向对象的指针列表
std::list<X*> xList;
所有我需要的是列表的大小,所以我的方法,填充此列表并调用size(),然后返回大小。
注意:我知道这不是最好的解决方案,但我使用的是一个提供动态分配对象列表的API,这是我能做到的唯一方法。
现在valgrind说这里有内存泄漏。我假设这是因为我从不删除列表中的对象。
我想我会做到这一点:
std::list<X*>::iterator iter;
for (iter = xList.begin(); iter != xList.end(); ++iter)
{
delete (*iter);
}
但这是对此最好的解决方案?
使用智能指针会是更好的解决方案。 – hmjd
我认为你不能以这种方式删除元素(而迭代使用该迭代器)。 – dbrank0
@ dbrank0:删除迭代器引用的对象非常好。 –