Strange behavior of my program



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,  "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);
   return;

--


Mio blog: http://newbufferedwriter.blogspot.com/
http://prodigious.altervista.org/Scrobblit/index.php


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]