On Tue, 2013-12-10 at 06:31 +0100, onetmt wrote: > Il 01/12/2013 21:01, Alberto Zichittella ha scritto: > > This message dialog causes a strange behavior on my program. It seems > > that the call to gtk_message_dialog_new() change the value of the const > > gchar* pointer, last parameter. > > > > Furthermore, the value of the const gchar* variable "message" change > > from "Il risultato e' -number-" to "Il risult(", I don't know why. > > I know that the call changes the value (and the address) of message > > because I use gdb. > > > > I develope on ubuntu gnome 13.10 using Code::Blocks , on a 64bit system, > > with gtk+-3.0 > > > > > > const gchar* message; > > /*the function risolviFormat() create a gchar* pointer, using malloc > > to allocate memory */ > > message = espressione->risolviFormat(); //message is, for example, > > Try this substitution: > > gchar *message; > > message = g_strdup_printf("Il risultato e': %f", result); > dialog = gtk_message_dialog_new(NULL, > GTK_DIALOG_DESTROY_WITH_PARENT, > GTK_MESSAGE_INFO, > GTK_BUTTONS_OK, > (const gchar *)message); > You really should not be passing a literal string as a format. What you really want is: dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Il risultato e': %f", result); > > "Il risultato e' 789" > > dialog = gtk_message_dialog_new (NULL, > > GTK_DIALOG_DESTROY_WITH_PARENT, > > GTK_MESSAGE_INFO, > > GTK_BUTTONS_OK, > > message); > > /*now message is "Il risult(" > > gtk_window_set_position(GTK_WINDOW(dialog),GTK_WIN_POS_CENTER_ALWAYS); > > gtk_dialog_run (GTK_DIALOG (dialog)); > > gtk_widget_destroy (dialog); > > /*this call causes a segfault because message pointer changed his > > value */ > > free(message); This causes a segfault cause you're freeing glib memory with libc 'free()' > > return; > > > > -- > > > > > > Mio blog: http://newbufferedwriter.blogspot.com/ > > http://prodigious.altervista.org/Scrobblit/index.php > > > > > > _______________________________________________ > > gtk-list mailing list > > gtk-list@xxxxxxxxx > > https://mail.gnome.org/mailman/listinfo/gtk-list > > > > _______________________________________________ gtk-list mailing list gtk-list@xxxxxxxxx https://mail.gnome.org/mailman/listinfo/gtk-list