Bonjour,
J'avais deja posé la question pour acceder aux membres d'un class via une autre class.
On m'avait répondu et j'avais pu le tester avec succes. Mais aujourd'hui j'ai une Segmentation Fault sur un programme wxWidgets.
Je sais où se trouve la ligne posant problème mais je ne sais pas comment corriger l'erreur.
Le principe est le suivant:
J'ai 2 class distinctes.
Une class MainWin instanciée dans la partie init du programme.
MainWin *win = new MainWin();
win->Show(true);
Une class Dice pour une fenêtre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class Dice:public wxFrame { public: Dice(); MainWin *ptr_vers_win; //<<< je declare ma class MainWin via le pointeur etc..... };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 void MainWin::OnRoll(wxCommandEvent &Event) { RollDice = new Dice(); RollDice->Show(true); RollDice->ptr_vers_win=this; //<<<< j'initialise le pointeur }
dans le constructeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Dice::Dice():wxFrame(NULL,-1,wxT("Action !"),wxDefaultPosition,wxSize(550,480)) { ...... ptr_vers_win->PersIni->SetPath(wxT("/")); //<<<< Segmentation fault ici ! ........ }
Il n'y a pas de problème a la compilation mais dès que j'essaye d'accéder a un élément de la class MainWin. ça plante. Pour tous les éléments auquels j'essaye d'accèder sont initialisés
Est ce la bonne démarche ?
N'ayant pas des bases C/C++ très solide je ne sais pas comment corriger cette erreur, je comprends qu'il y a un problème d'écriture ou lecture vers une zone mémoire mais......
Partager