J'essaie de supprimer tous les nœuds dans une liste chaînée circulaire unique. Mais je me suis suivante Erreur:Liste de liens circulaire C++ - supprimer tous les nœuds
malloc: *** error for object 0x1005068f0: pointer being freed was not allocated
Suite est la fonction:
void StudentLinkList::removeAll() {
StudentData *traversePointer = this->head;
while (this->head != nullptr) {
this->head = this->head->getNext();
delete traversePointer;
traversePointer = nullptr;
traversePointer = this->head;
this->size--;
}
}
J'obtiens l'erreur sur cette ligne:
delete traversePointer;
Ma question est que pourquoi traversePointer non allouée dans while comme indiqué dans l'erreur?
vous voulez probablement corriger l'erreur, mais quelle est ta question? – user463035818
Dans une liste chaînée circulaire, qu'est-ce qui vous fait penser 'this-> head = this-> head-> getNext();' fonctionnera quand vous reviendrez au début? Utilisez un débogueur .... –
L'erreur est franchement très descriptive ... Vous devriez être vraiment heureux à ce sujet ... Je souhaite avoir reçu ce genre d'erreurs ... – WhiZTiM