Bonjour,
J'ai un pb qui survient lors de la libération de mémoire
allouée pour les objets d'une classe, mais je n'arrive absolument pas à
savoir pourquoi, (lorsque je quitte l'appli un message d'erreur
de Windows s'affiche).
Le code étant extrêmement long et compliqué je vais simplifier.
La classe en question alloue un tableau d'objets lors de sa
création:
et libère la mémoire allouée lors de sa destruction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 MaClasse(int taille) { pObj = new Obj[taille]; ... }
Quelque part dans une autre classe 2 objets MaClasse sont créés:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ~MaClasse(){delete[] pObj;}
et sont détruits dans le destructeur de cette même autre classe:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 MaClasse *p1 = new Maclasse(50); MaClasse *p2 = new Maclasse(50);
Le pb apparement vient qu'il y a 2 instanciations/libérations.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 delete p1; delete p2;
Si je n'instancie qu'un seul objet je n'ai pas d'erreur
lors de la désallocation.
Est ce que quelqu'un aurait eu ce genre de pb ou aurait
une idée ?
D'avance merci.
Partager