0

我无法将 a 的文本设置在GtkLabel声明它的函数之外。在编码示例领域,我的程序看起来像这样:

 int main(int argc, char **argv) {
     GtkLabel *label;
     label = gtk_label_new(NULL);

     /* This works */
     gtk_label_set_text(label, "Hello!");

     /* This doesn't */
     sayHello(&label);

     return 0;
 }

 void sayHello(GtkLabel *label) {
     gtk_label_set_text(label, "Hello!");
 }

sayHello尝试设置标签文本时,GTK 会说以下内容:

 Gtk-CRITICAL **: gtk_label_set_text: assertion `GTK_IS_LABEL (label)' failed

怎么不是一个GtkLabel?我怎样才能解决这个问题?

4

1 回答 1

2

label是一个GtkLabel *已经。

&运算符应用于它会产生一个指向指针 a 的指针,GtkLabel **它是错误的类型。

你应该得到一些关于使用错误类型的参数调用的警告,或者如果你在调用它之前没有声明它sayHello的隐式声明。sayHello

于 2013-05-25T05:08:10.087 回答