bonjour, je n'arrive pas à résoudre un problème concernant un vecteur utilisant wxWidgets,
j'ai un vecteur dans lequel se trouve des triangles (coordonnées, couleur), deplus dans une boite de dialogue, concernant les propriétés des triangle, je n'arrive pas à supprimer un triangle en récuperant son numéro grâce à un GetSelection() sur un
wxListBox *LBox_triangle, lorsque je veut supprimer un triangle, il ya une erreur de segmentation, (car j'essaye de supprimer un triangle qui est déjà supprimer?), je ne sais pas si ma condition est mauvais dans le code ou pas.
voici le code :
voici ce que me donne gdb :
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 void GestionTriangleDialog::delTriangle( wxCommandEvent& event ) { unsigned int item; unsigned int size = ( (CMainFrame*)GetParent() )->getTabTri().size(); item = LBox_triangle->GetSelection(); if(item >= 0 && item < size) { ( (CMainFrame*)GetParent() )->getTabTri().erase( ((CMainFrame*)GetParent())->getTabTri().begin() + item ); LBox_triangle->Delete( item ); ((CMainFrame*)GetParent())->Refresh(); } }
Merci de votre compréhension.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Program received signal SIGSEGV, Segmentation fault. 0x008a0faa in wxObject::Ref(wxObject const&) () from /usr/lib/libwx_baseu-2.8.so.0 (gdb) bt #0 0x008a0faa in wxObject::Ref(wxObject const&) () from /usr/lib/libwx_baseu-2.8.so.0 #1 0x08056bb8 in wxObject::operator=(wxObject const&) () #2 0x0805755c in wxGDIObject::operator=(wxGDIObject const&) () #3 0x0805757a in wxColourBase::operator=(wxColourBase const&) () #4 0x08057598 in wxColour::operator=(wxColour const&) () #5 0x08057e4e in Triangle::operator=(Triangle const&) () #6 0x08058c1f in Triangle* std::__copy_move<false, false, std::random_access_iterator_tag>::__copy_m<Triangle*, Triangle*>(Triangle*, Triangle*, Triangle*) () #7 0x08058a69 in Triangle* std::__copy_move_a<false, Triangle*, Triangle*>(Triangle*, Triangle*, Triangle*) () #8 0x0805f432 in __gnu_cxx::__normal_iterator<Triangle*, std::vector<Triangle, std::allocator<Triangle> > > std::__copy_move_a2<false, __gnu_cxx::__normal_iterator<Triangle*, std::vector<Triangle, std::allocator<Triangle>
Partager