c - 将二维数组传递给 C 中的 GTK 函数

标签 c arrays gtk arguments

我尝试将二维数组作为参数传递给 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;

     ...

 }

最佳答案

botones 是一个 4*4 的 GtkWidget * 数组,当你调用 g_signal_connect 时,你将它转换为一个 gpointervoid * 的 typedef,然后在回调函数中,您应该将 gpointer 转换回指向 4 GtkWidget *< 的数组的指针 像这样:

GtkWidget * (*elementos)[4] = (GtkWidget *(*)[4])info;

然后您可以使用 elementos[0][0] 访问二维数组。

关于c - 将二维数组传递给 C 中的 GTK 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23531681/

相关文章:

c - 从非 void 函数的末尾掉落时写入未使用的参数的返回值

c - c中带有malloc的字符串数组的数组

c - 如何将字符指针分配给字符变量?

c - 在 C 中用 gets 读取一个 txt 文件

c - 为什么我的第一个 if 语句被跳过并且不接受 C 中的输入?

java - 根据Java中的某些约束(字符串和数组)打印字符串(压缩解压缩)

arrays - 合并多个元胞数组

c++ - Pixbuf 显示有关图像的错误信息

c++ - 比较 GTK+、Qt 和 MATLAB 为 C++ 编写的科学程序开发 GUI

c++ - Gtk + GtkComboBox插入GtkWidget而不是字符串