while(!m_RemoveNodeList.empty())
{
list<CNode *>::const_iterator const it = m_RemoveNodeList.begin();
CNode * const pNode = *it;
ASSERT(pNode != NULL);
m_NodeList.remove( pNode );
delete pNode; // crashing here
m_RemoveNodeList.pop_front();
}
Вышеупомянутое иногда дает сбой при удалении с исключением нарушения чтения. Могу ли я случайно удалить дважды?
оба m_NodeList и m_RemoveNodeList имеют тип
std::list<CNode *>
Я должен упомянуть, что CNode является базовым классом для нескольких других классов. однако ни один из этих классов ничего не делает в своих деструкторах
m_RemoveNodeList
? Как он заселен? - person CB Bailey   schedule 15.07.2011CNode
. - person NPE   schedule 15.07.2011