J'ai essayé de retourner le problème dans tous les sens mais je ne comprends toujours pas. J'ai un truc qui compile très bien mais j'ai un segmentation fault et je ne comprends pas pourquoi.
Voici la définition de la classe.
Le problème est lié à la liste pts.
et une partie des méthodes associées
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 class Panel : public wxPanel { public: Panel(wxWindow *parent); void AddPoint(int x, int y); void OnPaint(wxPaintEvent& event); void SetTimeRange(int start, int end); void SetAutomaticTime(bool b); private: int tstart, tend; int min, max; bool automaticTime; list<wxPoint *> pts; void GetMinMax(); wxPoint *Map(wxPoint &pt); void Drawpoint(wxDC &dc, wxPoint &pt); DECLARE_EVENT_TABLE() };
et j'appelle ceci avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Panel::Panel(wxWindow *parent) : wxPanel(parent), automaticTime(true) {} void Panel::AddPoint(int x, int y) { bool refresh = false; if(pts.empty()) { min = y; max = y; } ... }
Quand je fais ceci, j'ai un segmentation fault à l'appel de pts.empty(). Pourtant, tout est initialisé correctement. Je précise que j'ai essayé avec une liste d'entiers aussi. J'ai essayé d'appeler d'autres fonctions autre que empty() mais c'est pareil.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Panel *panel = new Panel(this); panel -> AddPoint(0,0);
Si quelqu'un à déjà vu ceci et qu'il a trouvé une solution, merci de me répondre.
Je compile avec wxDev-Cpp sous windows et j'ai essayé avec gcc sous debian mais le problème apparait aussi.
[ Modéré par BigBoomShakala ] - Ajout des balises [code] - Merci d'y penser par la suite
Partager