Bonsoir à tous,

J'ai un comportement assez étrange avec delete, c'est pourquoi je me tourne vers vous ce soir ; en effet, je possède une classe contenant une variable membre de type pointeur, que j'alloue dynamiquement. (m_machin = new Machin() )Dans le destructeur de la classe en question, je détruis cette objet avec un simple delete m_machin ; j'ai en effet pu lire ici et là que delete s'occupait de vérifier l'existence du pointeur. Seulement, quand je fais simplement un delete m_machin, j'ai l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
malloc: *** error for object 0x2: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Pourtant, mon objet a bien été alloué dynamiquement, j'ai fais des tests.. En remplaçant par un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
if (m_machin)
  delete m_machin
Ça marche mieux, ce qui semble logique ; mais je ne comprends pas pourquoi mon objet a été désalloué _avant_ que je ne fasse l'appel au delete ? Je précise que ma classe ne fait rien d'autre, c'est juste une classe de test toute vide là. ^^

Si vous avez une idée du pourquoi du comment !

Merci d'avance