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 .

Voici une partie de mon code incriminé:

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
 
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.

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