Bonjour,
J'ai un problème au niveau de passage de structure à une fonction
Je crée une structure dans un fichier .h
Je vais éviter de mettre toutes mes lignes de code pour une meilleure compréhension.
Je crée ma variable structure Element que je passe à ma fonction fenetre_principale(&Element).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 ... // Définition de la structure de la fenêtre principale struct ELEMENT { GtkWidget *p_Fenetre[1]; GtkWidget *p_Vboite[3]; GtkWidget *p_Selecteur[6]; }; typedef struct ELEMENT ELEMENT; // Prototype des fonctions void fenetre_principale( ELEMENT *p_Element ); ...
Jusqu'ici pas de problème, j'arrive à accéder aux variables de ma structure dans cette fonction.
C'est à partir d'une seconde fonction ( calcul_pret ) lancée dans la fonction fenetre_principale(&Element).
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 ... int main (int argc, char *argv[]) { gtk_init(&argc, &argv); ELEMENT Element; // Création de la fenêtre principale fenetre_principale(&Element); create_list (&Element); // Construction du tableau de prêt // affichage de l'ensemble gtk_widget_show_all(Element.p_Fenetre[0]); gtk_main(); return (EXIT_SUCCESS); } ...
que j'ai une erreur de segmentation
Je n'arrive pas à récupérer les variables de ma structure Element
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 fenetre_principale( ELEMENT *Element ) { ... // Définition des callbacks g_signal_connect ( G_OBJECT (p_Bouton[0]), "clicked",G_CALLBACK(Calcul_pret),(gpointer)Element ); ... } void Calcul_pret ( GtkWidget p_Widget, gpointer p_data ) { // Conversion des datas dans une structure ELEMENT ELEMENT *Recup = (ELEMENT*) p_data; // Variables récupération des données gchar Paie_1_emprunteur; // Récupération des informations Paie_1_emprunteur = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (Recup -> p_Selecteur[0])); } ...
Partager