Je le dit au moins trois fois par jour sur ce forum, ceci n'est pas une signature valide d'un callback:
void Save(GtkWidget * Bouton1, struct coord *Donnees)
Chaque signaux de chaque widgets possèdent une signature qu'il est bon de respecter si vous ne voulez pas avoir de comportement indéterminé ou des transmissions éronées d'arguments, etc... Ton callback serait plus juste sous cette forme:
void Save(GtkWidget * Bouton1, gpointer data)
Il faut consulter la documentation officiel du widget concerné et voir les signaux et donc en même la signature propre à chacun de ces signaux !
Pour ton problème majeur, si déclare dans le main un pointeur sur ta structure mais je n'ai pas vu à quel moment tu alloues un espace mémoire pour celui-ci et de plus tu passes en dernier argument à g_signal_connect l'adresse du pointeur ce qui n'est pas correcte du tout.
Au choix, soit tu déclare vraiment un pointeur sur ta structure dont tu passes "le pointeur" à g_signal_connect mais dans ce cas avant toute utilisation de ce pointeur, il faut allouer un espace mémoire valide avec g_malloc. Deuxième solution, tu déclares uniquement une variable du type de ta structure que tu peux utiliser donc directement et dont tu passes "l'adresse" à la fonction g_signal_connect !
Voilà, j'espère avoir pû t'aider, fait les modifications qui s'impose et reviens en cas de problème ou pose des questions sur ce que tu ne sais ou comprend pas
Partager