我有一个用 C/gtk+(v 2.x) 编写的 GUI 应用程序。如果我单击主窗口的菜单项,将调用以下函数并显示一个对话框。
dialog_ui * create_dialog ()
{
dlg = malloc (sizeof(dialog_ui));
dlg->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
...
gtk_widget_show_all (dlg->window);
return dlg;
}
这是dialog_ui结构
typedef struct _dialog_ui
{
GtkWidget * window;
...
} dialog_ui;
这是dlg头文件中的变量。
dialog_ui * dlg;
我的问题是,我malloc在create_dialog函数中调用。但我不知道我可以从哪里调用free,因为 GUI 是事件驱动的。我想过destroy-event,但我想知道这样做的正确方法。有任何想法吗.. ?