Bonjour,
j'ai un problème lorsque je veux
libérer la mémoire allouée dans une classe.
J'ai un vecteur de vecteur d'une classe Test
que j'initialise dans le constructeur comme ceci:
Lorsque j'essaye de libérer la mémoire dans le destructeur avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 matrice.resize(6); vector<vector<Test> >::iterator i; vector<Test>::iterator j; for (i = matrice.begin(); i != matrice.end(); ++i) { i->resize(7); for (j = i->begin(); j != i->end(); ++j) { Slot& s = *(new Test()); *j = s; } }
Le compilateur me dit que le pointeur est invalide je suis un débutant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 for (i = matrice.begin(); i != matrice.end(); ++i) { for (j = i->begin(); j != i->end(); ++j) { Test &s = *j; delete &s; } }
en c++ et je ne trouve pas une solution à mon problème.
Partager