当前位置: 技术问答>linux和unix
回调函数中疑似内存溢出,GTK+
来源: 互联网 发布时间:2016-05-13
本文导语: 我的代码又出现了一个问题,回调函数执行第二遍会让程序挂掉,且无任何提示信息。 请看我的代码,实现了一个点击按钮后,为主窗口返回所选择的日期之对话框。 回调函数中疑似内存溢出,不知道具体该如何...
我的代码又出现了一个问题,回调函数执行第二遍会让程序挂掉,且无任何提示信息。
请看我的代码,实现了一个点击按钮后,为主窗口返回所选择的日期之对话框。
回调函数中疑似内存溢出,不知道具体该如何改进,请高手点睛。
请看我的代码,实现了一个点击按钮后,为主窗口返回所选择的日期之对话框。
回调函数中疑似内存溢出,不知道具体该如何改进,请高手点睛。
void dialog_calendar (GtkEntry *widget,
DateTrans *dtEntry){ //DateTrans是我自定义的结构体指针,分别指向一个窗口和输入框
GtkWidget *dlCalendar;
GtkWidget *vbCalendar;
GtkWidget *calendar;
GtkWidget *hbb;
gint result;
guint year;
guint month;
guint day;
char *calendardate;
dlCalendar = gtk_dialog_new_with_buttons ("Calendar",
GTK_WINDOW(dtEntry->window),
GTK_DIALOG_MODAL,
GTK_STOCK_CLEAR,
GTK_RESPONSE_NO,
GTK_STOCK_CANCEL,
GTK_RESPONSE_REJECT,
GTK_STOCK_OK,
GTK_RESPONSE_OK,
NULL);
gtk_dialog_set_has_separator (GTK_DIALOG (dlCalendar), FALSE);
vbCalendar = GTK_DIALOG (dlCalendar)->vbox;
gtk_widget_show (vbCalendar);
calendar = gtk_calendar_new ();
gtk_widget_show (calendar);
gtk_box_pack_start (GTK_BOX (vbCalendar), calendar, TRUE, TRUE, 0);
hbb = GTK_DIALOG (dlCalendar)->action_area;
gtk_widget_show (hbb);
gtk_button_box_set_layout (GTK_BUTTON_BOX (hbb), GTK_BUTTONBOX_END);
result = gtk_dialog_run(GTK_DIALOG(dlCalendar));
switch (result){
case GTK_RESPONSE_NO:
gtk_entry_set_text(GTK_ENTRY(dtEntry->entry), "");
break;
case GTK_RESPONSE_OK:
gtk_calendar_get_date(GTK_CALENDAR(calendar),
&year,&month,&day);
g_sprintf(calendardate,"%d-%d-%d",year,month,day);
gtk_entry_set_text(GTK_ENTRY(dtEntry->entry),
calendardate);
break;
}
//free(calendardate); //加了这句后,第一次执行该函数就会挂调。
gtk_widget_destroy(dlCalendar);
}
|
指针calendardate没初始化
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。