Bonjour.
C'est dans un état de stress intense que je vous contacte.![]()
J'ai commencé à développer mon projet GTK sur les machines de mon école. (Debian et KDE). J'ai ensuite exporté tout ca sur mon pc sans aucun problème. (Ubuntu Feisty Fawn Gnome)
Depuis j'ai retraillé énormément sur le projet sur mon pc. Je le réexporte vers une machine de l'école et là : segfault!
Ca bloque apparemment à un appel de fonction que je fais dans une fonction. Voici cette dernière :
Dans mon main :
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 void BoutonNouveau(GtkWidget* pSaisie, gpointer data) { printf("Entree dans bouton nouveau\n"); ParamBoutonNouveau* paramBoutonNouveau; GtkWidget* pDialogue; pDialogue = gtk_dialog_new(); paramBoutonNouveau = (ParamBoutonNouveau*)data; printf("Donnees recuperees\n"); if ( DebutTestPossible == FALSE ) { printf("Entree dans le if\n"); BoiteMessageImpossibleQuitter(pDialogue); } else { printf("J'en ai marre!!!!!\n"); EnregistrerProfil(GTK_WIDGET(paramBoutonNouveau->Fenetre), GTK_WIDGET(paramBoutonNouveau->EBox), GTK_WIDGET(paramBoutonNouveau->Label1), GTK_WIDGET(paramBoutonNouveau->Label2), GTK_WIDGET(paramBoutonNouveau->VBox)); } }
La compilation :
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 int main(int argc,char **argv) { ... ParamBoutonNouveau* paramBoutonNouveau; ... paramBoutonNouveau = (ParamBoutonNouveau*)malloc(sizeof(ParamBoutonNouveau)); paramBoutonNouveau->Fenetre = pFenetre; paramBoutonNouveau->EBox = pEBox; paramBoutonNouveau->VBox = pVBox; ... gtk_signal_connect(GTK_OBJECT(pBoutonNouveau), "clicked", G_CALLBACK(BoutonNouveau), paramBoutonNouveau); ... free(paramBoutonNouveau); ... return 0; }
L'exécution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2make gcc `pkg-config --libs --cflags gtk+-2.0` -o appli1 main.c traitementSaisie.c bouton.c traitementImage.c boiteMessage.c -DDEBUG
Ca bloque donc à la fonction EnregistrerProfil. Celle-ci est définie dans une autre .c mais j'inclue bien le .h correspondant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4Entree dans bouton nouveau Donnees recuperees J'en ai marre!!!!! Segmentation fault
Je n'y comprends absolument rien étant donné que tout fonctionne niquel sur mon pc.
Si ce que j'ai mis ne suffit pas, n'hésitez pas à demander plus de source, je suis même pret à lacher le tar complet pourvu que mon projet se lance!
PS : j'ai également essayé de déclarer la structure en statique, sans passer par des malloc, ca marche aussi sur mon pc et pas non plus sur les machines de l'école...
Partager