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:
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:
1
2 ~MaClasse(){delete[] pObj;}
et sont détruits dans le destructeur de cette même autre classe:Code:
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:
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.