Bonjour,
Pour initialiser les données partagées, j'ai utilisé les fonctions suivantes
Or je constate que printf du main affiche toujours 0.0 et non les valeurs initialisées dans "ini_t2". Alors que si je fais le même printf dans ini_t2 en y ajoutant un g_object_get_data après, je trouve le bon résultat.
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 typedef struct aff_xy{ float x; float y; } pxy; void main () { GtkWidget *widget; pxy *point_t2; .... (void)ini_t2(widget); point_t2 = g_object_get_data(G_OBJECT(widget), "atester"); printf("%f -- %f \n", point_t2->x, point_t2->y); } void ini_t2(GtkWidget *widget) { pxy point_t; point_t.x = 5.0; point_t.y = 45.2; g_object_set_data(widget, "atester", (gpointer)&point_t); }
J'ai beaucoup de difficulté pour déceler l'origine de ce problème avec un mécanisme d'usage pourtant classique.
J'aimerais savoir si quelqu'un parmi vous a une idée sur ce problème
Merci à l'avance et cordialement.
Partager