Bonjour,

Désolé ce sont des questions de réels débutants qui ne maitrisent pas très bien les pointeurs...

Je souhaiterai savoir comment libérer mon espace mémoire quand j'utilise un vecteur de pointeur (sur un objet) !

Faut-il que je fasse l'effacement du vecteur avant ou après avoir effacer mes pointeurs sur les objets ?

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
19
 
#include <vector>
 
int main()
{
vector<Object*> vect;
 
// fonction qui remplit le vecteur avec les Object
remplirVecteur(vect);
 
//...
 
// effacement de tous les objets du vecteur
effacerContenuVecteur(vect);
 
// effacement du vecteur
vect.clear;
vect.delete;
}
Autre question :
Faut-il que j'efface mes pointeurs à chaque fois que j'entre un Objet dans un vecteur ?

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
 
const int nbElement 10;
 
void remplirVecteur(vector<Object* > vect)
{
int i;
Obect* myObject
for(i=0;i<nbElement;i++)
{
myObject = new Object(i);
}
// faut'il que je fasse ici :
delete myObject
// au risque de perdre tout ce que je voulais dans mon vecteur
}
Dernière question :
Mes Object ont eux aussi des pointeurs qui sont effacer dans le destructeur, est ce que cela suffit pour libérer l'espace mémoire (l'appel est automatique à la fin de la session).
Ou faut'il que j'efface chaque pointeur "tout seul" ?

Je vous remercie d'avance pour toutes vos remarques et réponses.
Cordialement.