je un suivant C++ code:c de l'emplacement lecture de violation d'accès tout en effaçant la liste
typedef std::list<Volume>::iterator pVolume;
typedef std::list<pVolume>::iterator ppVolume;
void Node::delVolume(pVolume _volume)
{
for(ppVolume it = m_volumes.begin(); it != m_volumes.end();)
if((*it) == _volume)
{
it = m_volumes.erase(it);
break;
}
else
it++;
}
il obtient une erreur
Unhandled exception at 0x009a3c79 in Delone3D.exe: 0xC0000005: Access violation reading location 0xfeeefef2.
exactement lors de l'effacement. Le débogage montre que ni "it" ni "_volume" n'est null pointeur.
Pour quelles autres raisons cela peut-il se produire?
A quoi ressemble le destructeur Volume? –
Le destructeur de volume est vide. Tous les arguments du volume sont statiques. Dans cette fonction, je supprime uniquement le pointeur sur Volume et non sur l'objet lui-même. –
Eh bien, nous ne pouvons rien dire, si vous ne montrez pas le code pertinent dans son contexte. –