我尝试将二维数组作为参数传递给GTK中的函数,但没有成功。如何编辑数组中按钮的顺序?
GtkWidget *botones[4][4];
...
g_signal_connect(G_OBJECT(botones[0][0]), "clicked", G_CALLBACK(borra), botones);
...
void borra(GtkWidget *widget, gpointer info)
{
GtkWidget **elementos= (GtkWidget*) info;
...
}
答案 0 :(得分:0)
botones
是GtkWidget *
的4 * 4数组,当您致电g_signal_connect
时,您将其转换为gpointer
,void *
的typedef,然后在回调函数中,你应该将gpointer
强制转换为指向4 GtkWidget *
数组的指针,如下所示:
GtkWidget * (*elementos)[4] = (GtkWidget *(*)[4])info;
然后您可以使用elementos[0][0]
访问二维数组。