Bonjour,


j ai un probleme avec la classe vector de la STL,

je suis en train de developper une Gui en opengl et j utilise la classe vector ,

tout fonctionne plus ou moins bien mais il y a vraiment une chose qui me semble tres etrange et je pense qu' il y a quelque chose qui doit m echapper quelque part :

dans ma gui , j ajoute un certain nombre de controles sliders à un menu comme ceci :

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
19
20
21
22
23
24
25
26
27
28
29
30
 
class DLLFUNC VGL_Menu {
 
public:
 
               	int MouseX,MouseY;
 
public:
 
	VGL_Menu();
	VGL_Menu(int WindowX,int WindowY);
	VGL_Menu(Vector2 WindowSize);
	~VGL_Menu();
               //: ***** encore du code /////
	vector <VGL_GUISlider>       Sliders;
	void Add_Slider(VGL_GUISlider Slider_);
   //: ***** encore du code /////
 
 
};
 
 
// methode Add_Slider :
 
void DLLFUNC VGL_Menu::Add_Slider(VGL_GUISlider Slider_) {
Slider_.pmouseX = &(this->MouseX);
Slider_.pmouseY = &(this->MouseY);
Sliders.push_back(Slider_);
 
}
si j utilise la methode add slider j ai le droit a user breakpoint à la fin de l execution de mon programme il y a un probleme apparement au niveau de la desallocation de memoire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
HEAP[vbasecode.exe]: Invalid Address specified to RtlFreeHeap( 02AA0000, 029A5330 )

par contre si je fait :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
 
// j ai une instance de classe VGL_Menu nommée mMenu 
 
mySlider.pmouseX = &(mMenu.MouseX);
mySlider.pmouseY = &(mMenu.MouseY);	
mMenu.Sliders.push_back(mySlider);
soit le meme code que dans la methode Add_Slider mais a l exterieur de la classe VGL_Menu , la pas de probleme ...

Donc si qqun à une idée d ou peut venir le probleme, je me doute bien que j ai du faire une connerie mais ou ??

Merci d avance

salut