Bonjour,
je suis sous codeblocks, et je crée un petit moteur 3d pour m'entrainer.
J'ai créé une classe Monde qui contient un tableau vectoriel de pointeurs sur Objets créé dynamiquements, tout fonctionne (création , manipulation , acces)
Sauf lors de la destruction du conteneur qui delete les objets un par un.
ceci donne lieu a une faute de segmentation a la ligne delete.
voici mon code(constructeur , destructeur et methode creerObjet):
j'ai cherché a peu pres partout y compris sur ce site,un sujet existe déja mais j'aimerai ne pas faire appel a boost tout de suite étant donné que j'apprend déja a utiliser 4bibliotheques en meme temps , et j'aimerai aussi éviter d'allouer dynamiquement mon std::vector<Objet*> car je trouve que ce n'est pas tres propre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Monde::~Monde() { for (unsigned int i(0) ; i < m_tableauObjets3d.size(); ++i) { delete m_tableauObjets3d[i]; cout << "objet detruit " << i <<endl; } } void Monde::creerObjet(string chemin) { m_tableauObjets3d.push_back(new Objet3d(chemin)); cout << "objet créé" <<endl; }
Mais bon , s'il n'y a pas de meilleure solution.
Partager