Bon voil� je d�bute sur GTK et j'ai fais ce petit exercise
Faites un programme qui fait ceci lorsque on clique sur la croix :
Ecrire le titre de la fen�tre dans la console, en inversant l'ordre des lettres !
Quitter le programme.
Voil� le code que j'ai obtenu la premi�re fois :
Le compilateur me met le warning suivant :
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 #include <gtk/gtk.h> #include <stdlib.h> #include <string.h> void inverser_titre_quitter (GtkWidget *p_widget, gpointer data) { printf ("%s\n", strrev (gtk_window_get_title (GTK_WINDOW (p_widget)))); gtk_main_quit (); } int main (int argc, char **argv) { GtkWidget *p_window = NULL; gtk_init (&argc, &argv); p_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (p_window), "Tadili Saad"); gtk_widget_show (p_window); g_signal_connect (G_OBJECT (p_window), "delete-event", G_CALLBACK (inverser_titre_quitter), NULL); gtk_main (); return EXIT_SUCCESS; }
warning: passing arg 1 of `strrev' discards qualifiers from pointer target type|
J'imagine que cel� est du au fait que je modifie la chaine de caractere du widget n'est-ce pas ?
donc j'ai modifier ma fonction pour obtenir le code suivant :
Et je me demande si il y a pas une meilleure m�thode, aussi quand je d�clare p_tmp1 juste en mettant char *p_tmp1 j'ai un warning
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13 void inverser_titre_quitter (GtkWidget *p_widget, gpointer data) { const gchar *p_tmp1 = gtk_window_get_title (GTK_WINDOW (p_widget)); char *p_tmp2 = malloc (sizeof (strlen (p_tmp1) * *p_tmp2)); strcpy (p_tmp2, p_tmp1); printf ("%s\n", strrev (p_tmp2)); free (p_tmp2); gtk_main_quit (); }
warning: initialization discards qualifiers from pointer target type
J'ai donc mis :
const gchar *p_tmp1
�a marche mais je sais pas si c'est correct, et si tel est le cas pourquoi on est oblig� de faire �a.
et surtout �a veut dire quoi ce warning que j'ai jamais eu avant :
initialization discards qualifiers from pointer target type
Merci
Partager