Passer une structure en paramètre d'un g_signal_connect
Bonjour, tout le monde !
Voilà j'essaye de faire passer une structure personnalisée dans un g_signal_connect mais j'ai quelques soucis...
Voilà ma structure :
Code:
1 2 3 4 5 6 7 8
| typedef struct param {
gpointer builder;
char *str[MAXELEMENTS];
int nb_str;
int entiers[MAXELEMENTS];
int nb_entiers;
FILE *file;
} Param; |
Le but c'est de passer en argument le builder, plusieurs chaines de caractères et même des nombres...
Voilà mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| char remove_admin_aux(GtkBuilder *a, Param *param/){
g_print("%d\n",(*param).entiers[0]);
return '1';
}
/*Supprime un admin d'un fichier *admin */
void remove_admin(FILE *admin, gpointer builder){
char str[MAXNOM]="\0";
int nb_lignes;
GtkButton *valide_supr = (GtkButton *) gtk_builder_get_object(builder, "valide_supr");
Param *param;
Param parametres;
param = ¶metres;
nb_lignes = compte_lignes(admin);
(*param).builder = builder;
(*param).nb_str = 2;
(*param).str[0] = str;
(*param).entiers[0] = nb_lignes;
(*param).nb_entiers = 1;
(*param).file = admin;
printf("nb_lignes= %d\n",nb_lignes);
g_signal_connect(valide_supr, "clicked",
G_CALLBACK(remove_admin_aux), param); |
Et voilà ce que j'obtiens dans un terminal :
Je ne comprend pas pourquoi je n'obtiens pas "3"...
Merci pour vos réponses
Ludo