Libération d'un vector de pointeurs
Bonjour,
J'ai une exception lors de la libération d'un vector de pointeurs.
Le sujet a été plusieurs fois abordés sur ce forum, et dans la faq, et une petite recherche m'a permi de trouver ce sujet (entre autres).
A prioris, j'ai l'impression de faire les choses correctements, mais dans la pratique, ça plante :cry:.
Voici une partie de mon code incriminé:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
simulator5ax::toolpath *TheToolPath;
//
std::vector<simulator5ax::toolpath*> toolpath_array;
//
for (t_int i = 0; i<VSSimulatorParam.lm_Sim_ToolPath.total; i++){
TheToolPath = new simulator5ax::toolpath(TheTool); //pointeur vers un nouveau ToolPath
//SetMoves_To_ToolPath(VSSimulatorParam.lm_Sim_ToolPath.q[i],TheTool,TheToolPath); //Remplissage du ToolPath
toolpath_array.push_back(TheToolPath); //le place dans le vecteur
}
//
for (std::vector<simulator5ax::toolpath *>::iterator i = toolpath_array.begin(); i != toolpath_array.end();++i)
delete *i;
toolpath_array.clear(); |
Au debuggeur, c'est une fois les 2 iterateurs nettoyés, et au moment du 're-passage sur la ligne du for' pour sortie, que l'exception a lieu.
Citation:
Exception $C0000005 ACCESS_VIOLATION at $13451F0D, write of address $39CF5D00 11:03:17:591
Voyez-vous d'où pourrait venir mon problème?
Merci d'avance pour votre aide.
Cordialement,
Benjamin