Re: A struct crazy



Hi Miguel

> typedef struct{
>
>   GtkWidget *item_code;
>   gchar *query;
>
> } data_gtk;
>
> gint
> intro_data_1(GtkWidget *box, gchar *query , gchar *item){
>
>   GtkWidget *botton;
>   GtkTooltips *label;
>
>   data_gtk_1 enters;

enters is freed at the end of the funtion (local var).
Use something like

  data_gtk_1 *enters = g_malloc(sizeof(data_gtk_1));

Don't forget to free enters memory, when it's not used anymore:
(before your program quits)

  g_free(enters);

An other way would be to declare enters global...

>   gtk_signal_connect(GTK_OBJECT(botton), "clicked", GTK_SIGNAL_FUNC(request_DB), &enters);
>
>   gtk_widget_show(enters.item_code);
>
>   label = gtk_tooltips_new();
>   gtk_tooltips_set_tip(label, enters.item_code, item, NULL);
>
>   return 0;
> }
>
> void
> request_DB(GtkWidget *widget, data_gtk *query_gtk){

query_gtk points to unknown memory

> }

Jan-Marek





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