0

GtkLabel宣言された関数からa のテキストを設定するのに問題があります。コーディング例の世界では、私のプログラムは次のようになります。

 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

labelGtkLabel *すでにです。

それに演算子を適用する&と、ポインタへのポインタが生成されますが、GtkLabel **これは間違った型です。

間違ったタイプの引数で呼び出すこと、または呼び出す前に宣言しなかった場合sayHelloの暗黙の宣言について、いくつかの警告が表示されるはずです。sayHello

于 2013-05-25T05:08:10.087 に答える