Salut à Tous,

Je débute sur GTK et je suis le cours disponible sur le site developpez.net.
Je souhaiterai récupérer le texte que utilisateur rentre dans les deux champs mais j'ai un problème de segmentation lors du lancement de mon programme. J'ai essayé de comprendre d’où viens le problème mais je n'arrive pas à le trouver. Voici mon code :
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#include <gtk/gtk.h>
void activation_recup(GtkWidget *Entre, gpointer data) {
	const gchar *sText;
 
	/* Recuperation du texte contenu dans le GtkEntry */
	sText = gtk_entry_get_text(GTK_ENTRY(Entre));
	printf("fct %s", sText);
	/* Modification du texte contenu dans le GtkLabel */
	gtk_label_set_text(GTK_LABEL((GtkWidget *) data), sText);
 
 
}
 
void recup_donnee(GtkWidget *pButton, gpointer data) {
	GtkWidget *pTempEntry;
	GtkWidget *pTempLabel;
	GList *pList;
	const gchar *sText;
 
	/* Recuperation de la liste des elements que contient la GtkVBox */
	pList = gtk_container_get_children(GTK_CONTAINER((GtkWidget *) data));
 
	/* Le premier element est le GtkEntry */
	pTempEntry = GTK_WIDGET(pList->data);
 
	/* Passage a l element suivant : le GtkButton */
	pList = g_list_next(pList);
 
	/* Passage a l element suivant : le GtkLabel */
	pList = g_list_next(pList);
 
	/* Cet element est le GtkLabel */
	pTempLabel = GTK_WIDGET(pList->data);
 
	/* Recuperation du texte contenu dans le GtkEntry */
	sText = gtk_entry_get_text(GTK_ENTRY(pTempEntry));
 
	/* Modification du texte contenu dans le GtkLabel */
	gtk_label_set_text(GTK_LABEL(pTempLabel), sText);
	printf("fct 2 %s", sText);
 
	/* Liberation de la memoire utilisee par la liste */
	g_list_free(pList);
}
 
 
int main(int argc, char **argv) {
	GtkWidget *fenetre_login;
	GtkWidget *tableau_de_login;
	GtkWidget *Entre_login;
	GtkWidget *validation;
	GtkWidget *login;
	GtkWidget *Entre_mdp;
	GtkWidget *mdp;
	GtkWidget *label;
 
	const gchar *sText;
 
	gtk_init(&argc, &argv);
 
	//fenetre login
	fenetre_login = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title(GTK_WINDOW(fenetre_login), "Login");
	gtk_window_set_position(GTK_WINDOW(fenetre_login), GTK_WIN_POS_CENTER);
	gtk_window_set_default_size(GTK_WINDOW(fenetre_login), 320, 200);
 
 
	tableau_de_login = gtk_table_new(5, 2, FALSE);
 
	gtk_container_add(GTK_CONTAINER(fenetre_login), GTK_WIDGET(tableau_de_login));
 
	login = gtk_label_new("Entrez votre login :");
 
	mdp = gtk_label_new("Entrez votre mot de passe :");
 
	Entre_login = gtk_entry_new();
 
	Entre_mdp = gtk_entry_new();
 
	validation = gtk_button_new_with_label("connexion");
 
	gtk_table_attach(GTK_TABLE(tableau_de_login), login,
					 0, 1, 0, 1,
					 GTK_EXPAND, GTK_EXPAND,
					 15, 0);
	gtk_table_attach(GTK_TABLE(tableau_de_login), Entre_login,
					 0, 2, 1, 2,
					 GTK_EXPAND | GTK_FILL, GTK_EXPAND,
					 15, 0);
	gtk_table_attach(GTK_TABLE(tableau_de_login), mdp,
					 0, 1, 2, 3,
					 GTK_SHRINK, GTK_EXPAND,
					 15, 0);
	//gtk_table_attach_defaults(GTK_TABLE(tableau_de_login),mdp,0,1,2,3);
	gtk_table_attach(GTK_TABLE(tableau_de_login), Entre_mdp,
					 0, 2, 3, 4,
					 GTK_EXPAND | GTK_FILL, GTK_EXPAND,
					 15, 0);
	gtk_table_attach(GTK_TABLE(tableau_de_login), validation,
					 1, 2, 4, 5,
					 GTK_EXPAND, GTK_EXPAND,
					 0, 0);
	gtk_table_attach(GTK_TABLE(tableau_de_login), label,
					 0,1, 4, 5,
					 GTK_EXPAND, GTK_EXPAND,
					 0, 0);
 
 
	g_signal_connect(G_OBJECT(Entre_login), "activate", G_CALLBACK(activation_recup), label);
 
	g_signal_connect(G_OBJECT(validation), "clicked", G_CALLBACK(recup_donnee), tableau_de_login);
 
	g_signal_connect(G_OBJECT(validation), "clicked", G_CALLBACK(gtk_main_quit), NULL);
 
	//sText=gtk_label_get_text(GTK_LABEL(label));
	printf("rrr%s", sText);
 
	gtk_widget_show_all(fenetre_login);
 
 
	gtk_main();
 
	return 0;
Si vous avez une idée, ça serait super cool

Merci d'avance.