Bonjour !
Je pense avoir trouve un soucis dans mon application... je ne suis pas encore certain, mais je pose la question avant d'aller en pause
J'ai un vector contenant des objets qui ne sont pas des pointeurs (ce sont des structures allouees, sans pointeurs). J'enregistre dans une std map l'adresse memoire de certains de mes objets.
Au fur et a mesure que je track ces pointeurs, je les supprime de mon vecteur : la, deux comportement peuvent arriver (ca varie a chaque lancement).
- Soit lorsque j'accede a mes objets via les pointeurs enregistres je me retrouve a des adresses ne correspondant pas, donc dans un autre objet, a cheval entre deux... bref pas good
- Soit lors du tracking j'ai un segfault parce que j'accede a l'objet, et il semble que l'objet ai bouge de place.
Ma question est : bien que je puisse passer mon vecteur vers des objets construits par new, est-ce que lorsque je demande un erase dans mon vecteur, les objets peuvent changer d'adresse ?
Je pose cette question pour mieux comprendre le comportement de std vector... et je vous remercie d'elever ma culture
Merci
---------------
Un blog qu'il est bien