C 窗口退出时如何连接函数?

C 窗口退出时如何连接函数?,c,gtk3,C,Gtk3,我在堆上有一些内存,当窗口退出时,我必须释放这些内存。如何使用g_signal_connect确定窗口何时退出?我的问题很简单,因此无需大量键入。大致如下: GtkWindow* window; int* data_to_free = malloc(100); g_signal_connect(window, "destroy", G_CALLBACK (my_function), data_to_free); void my_function(int* data) { free(da

我在堆上有一些内存,当窗口退出时,我必须释放这些内存。如何使用g_signal_connect确定窗口何时退出?我的问题很简单,因此无需大量键入。

大致如下:

GtkWindow* window;
int* data_to_free = malloc(100);
g_signal_connect(window, "destroy", G_CALLBACK (my_function), data_to_free);

void my_function(int* data) {
    free(data);
}

其中,my_函数是您希望在窗口关闭时使用可选数据调用的函数。如果my_函数不接受任何参数,则my_函数可能为空。

由于很难确定您的问题是什么,您需要添加一个最小的完整示例,以显示您的尝试。@Jackson加油。我明确表示,当窗口关闭时,我需要打免费电话。请看:@Jackson为什么??我甚至什么都没做,我问了一个非常体面的问题。我想我试过了,但再试试也无妨。有趣的仅当我单击窗口上的x时才起作用尝试用deleteGLib GObject警告替换destroy**:16:46:36.560:../../../../../../GObject/gsignal.c:2523:信号“delete”无效,例如类型为“GtkWindow”的“0x26c0280”您是将信号连接到主窗口还是其他窗口