G_CALLBACK(on_button_clicked),(gpointer)count); 这一句。
这里的userdata你传递的(gpointer)count,实际上就是传递的count当前值,而不是count的地址,所以,每次执行传递的实际上1这个数字,而非count这个变量,如果想要用count,可以改为:
g_signal_connect(G_OBJECT(button),"clicked",
G_CALLBACK(on_button_clicked),(gpointer)&count);
同时:g_print("%d\n", (gint)userdata);这句改为g_print("%d\n", *(gint *)userdata);
页:
[1]