Всякий раз, когда я передаю что-либо в функцию обратного вызова, когда "delete-event"
запускается с намерением очистить что-либо, когда окно закрывается, значения, которые я отправляю, портятся.
Например, вот небольшая программа, которая иллюстрирует эту проблему:
#include <gtk/gtk.h>
void window_quit(GtkWidget *window, int *v)
{
g_print("%d\n", *v);
gtk_main_quit();
}
void normal_function(int *v)
{
g_print("%d\n", *v);
}
int main(int argc, char **argv)
{
gtk_init(&argc, &argv);
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show(window);
int v = 5;
normal_function(&v);
g_signal_connect(window, "delete-event", G_CALLBACK(window_quit), &v);
gtk_main();
}
Как я могу вызвать функцию при выходе и передать ей правильные значения? Кстати, у меня нет этой проблемы с функциями, вызываемыми нормально или другими сигналами.