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.

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 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
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;
    }
    ...
}
et j'appelle ceci avec

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Panel *panel = new Panel(this);
panel -> AddPoint(0,0);
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.

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