
Envoyé par
crossbowman
La ligne «list[id] = &Objet(id, sort, x,y);» crée un objet, mais le démolit directement après la fonction. Comment pourrais-je régler ce problème???????????????
L'appel au constructeur Objet(id, sort,x,y) crée un objet temporaire anonyme. Cet objet temporaire est détruit dès fin de l'instruction. Pour éviter cela, puisque ta liste prend des pointeurs, mieux vaut faire une allocation dynamique normale :
list[id] = new Object( id, sort, x, y );
Cela dit, ton code a pas mal d'autres problèmes et il y a des chances qu'une solution nettement plus simple et robuste soit facilement envisageable. Le recours à un std::map, peut-être ?
Partager