我有一個指向對象的指針列表。內存泄漏到指向對象的指針列表
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:刪除迭代器引用的對象非常好。 –