à tous!

Voilà, j'aimerais tout simplement créer une GTK-Table, composée de 6 boutons numérotés, tels que lorsque l'on clique dessus, il puisse apparaître une fenêtre réponse contenant le numéro correspondant au bouton.

Voici ci dessous le source que j'ai codé...

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
 
#include <stdlib.h>
#include <stdio.h>
#include <gtk/gtk.h>
 
#define N 6
 
//Cette procédure affiche une fenêtre affichant le numéro du bouton correspondant
void fenetreReponse (int n); 
 
int main (int argc, char **argv) {
 
    GtkWidget *pFenetre, 
              *pTable,
              *pBouton [N];
 
    gchar *c;
 
    gtk_init (&argc, &argv);
 
    //Création et définition de la fenêtre globale
    pFenetre = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_default_size (GTK_WINDOW(pFenetre), 180, 300);
    gtk_window_set_position (GTK_WINDOW(pFenetre), GTK_WIN_POS_CENTER);
    gtk_window_set_title (GTK_WINDOW(pFenetre), "Tableau de Valeurs");
 
    //Création de la table 7 lignes et 1 colonne
    pTable = gtk_table_new (6, 1, TRUE);
 
    int i;
    for (i=0; i<N; i++) {
 
        //Création de chaque bouton
        g_sprintf (c, "%d", i+1);
        pBouton[i] = gtk_button_new_with_label (c);
 
        //Insertion de chaque bouton dans la table
        gtk_table_attach_defaults (GTK_TABLE(pTable), pBouton[i], 0, 1, i, i+1);
 
        //Connexion de chaque bouton au signal "clicked"
        g_signal_connect (G_OBJECT(pBouton[i]), "clicked", G_CALLBACK(fenetreReponse), &i); }
 
    //Insertion de le table dans la fenetre
    gtk_container_add (GTK_CONTAINER(pFenetre), pTable);
 
    //Connexion de la fenêtre au signal "destroy"
    g_signal_connect (G_OBJECT(pFenetre), "destroy", G_CALLBACK(gtk_main_quit), NULL);
 
    //Affichage de la fenêtre globale et tout son contenu
    gtk_widget_show_all (pFenetre);
 
    gtk_main ();
 
    return EXIT_SUCCESS;
}
 
void fenetreReponse (int n) {
 
     GtkWidget *pFenetre, *pLabel;
     gchar *c;
 
     //Création de la fenêtre d'affichage
     pFenetre = gtk_window_new (GTK_WINDOW_TOPLEVEL);
     gtk_window_set_default_size (GTK_WINDOW(pFenetre), 150, 100);
     gtk_window_set_position (GTK_WINDOW(pFenetre), GTK_WIN_POS_CENTER);
     gtk_window_set_title (GTK_WINDOW(pFenetre), g_locale_to_utf8 ("Fenêtre réponse", -1, NULL, NULL, NULL));
 
     //Création du label et insertion dans la fenêtre
     g_sprintf (c, "%ld", n);
     pLabel = gtk_label_new (c); 
     gtk_container_add (GTK_CONTAINER(pFenetre), pLabel);
 
     //Affichage de la fenêtre
     gtk_widget_show_all (pFenetre);
}

Il compile très bien, mais à l'exécution, lorsque je clique sur n'importe quel bouton, la fenêtre résultat m'affiche un nombre au hasard (comme par exemple: 11315679)...

Je ne sais pas d'où vient le problème (...peut-etre de ma fonction CALLBACK...)

Quelqu'un pourrait-il m'aider s'il vous plaît? Je suis désespéré....
Merci d'avance...