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/

相关文章:

字符数组可以用作 switch 语句的表达式吗?

java陷入数组索引越界异常

java - 从 HTTPResponse 解析 JSON

c - GTK_WINDOW(window)->allow_shrink = TRUE 在 c 中是什么意思?

c - 从 gtk 窗口缩放 cairo 上下文绘制调用需要太长时间

c - GTK 创建新的简单小部件

c - 并排打印两个金字塔(ASCII 图形)

c - 这个字符串怎么能打印出来

python - 调试 Python C 扩展模块中的引用计数内存泄漏

jquery - 如何使用数组扩展 jquery 插件的选项