我使用std::vector
把一組對象到它供以後使用,我使用DETAIL* pPtr = new DETAIL
創建的指針,然後將其插入到矢量中。
DETAIL的結構
struct DETAIL {
int nRef;
short sRandom;
};
這是刪除並沒有留下餘地內存泄漏矢量內擦除指針的最佳方式?
while(Iter1 != m_Detail.end())
{
if((*Iter1)->nRef == m_SomeVar)
{
delete *Iter1;
m_Detail.erase(Iter1);
break;
}
Iter1++;
}
維持指向矢量和/或指針類型向量的指針幾乎總是錯誤的。 (幾乎總是。不要這樣做。 –
幾個小時前沒有問過這個問題嗎? http://stackoverflow.com/questions/10854274/how-to-properly-delete-pointer – PermanentGuest
如果你的向量包含原始指針,那麼當例如向量被異常銷燬時,絕對沒有辦法保護它。泄漏的可能性始終存在。 –