Je vais réessayer avec une structure alors.
Si je mets une structure, je passe quoi en 3ème paramètre dans la fonction gtk_timeout_add(); ?
C'est ça qui me dérange aussi je crois, je n'ai pas très bien compris.
Version imprimable
Je vais réessayer avec une structure alors.
Si je mets une structure, je passe quoi en 3ème paramètre dans la fonction gtk_timeout_add(); ?
C'est ça qui me dérange aussi je crois, je n'ai pas très bien compris.
Tu passes un pointeur sur une donnée du type de ta structure. Tu as deux manières de procéder :
- Tu disposes d'une variable déclarée en locale. Tu passes son pointeur &variable. Il faut t'assurer de la validité de cette variable le temps de son traitement. C'est à dire que la fonction dans laquelle tu l'as déclaré ne se termine pas.
- Tu alloues un espace mémoire dans le tas (malloc) pour une donnée du type de ta structure. Ici tu ne dispose que du pointeur que tu transmets directement. Il faut seulement penser à libérer la mémoire au moment opportun.
Mon type de structure est Test, j'ai donc créé une variable nommée Testp de type Test.
Du coup j'ai écrit ça dans mon main :
Mais ça ne fonctionne pas. Mon programme cesse de fonctionner.Code:gtk_timeout_add( 1000,(GtkFunction) foo, &Testp);
Si la déclaration de testp est Test Testp; alors ton écriture est correcte. Le problème vient d'ailleurs.