C gtk_label_set_text()工作不正常

C gtk_label_set_text()工作不正常,c,gtk,glade,C,Gtk,Glade,我正在使用Glade制作GUI,并使用GTK编写其代码。我制作了一个GUI,这样,如果单击开始按钮,不同参数的值开始显示在Gtk标签中。我已经为所有参数创建了函数,并在开始按钮处理程序中调用每个函数。我在其中一个参数中添加了此行gtk_label_set_text(gtk_label(label),value)。当我运行代码时,它给了我一个错误:分段错误(内核转储) 所以我的第一个问题是为什么它会给我这个错误。? 我做了一些研究,发现了一些东西,所以我用我的值加了“&”,然后它没有给我分割错误,

我正在使用Glade制作GUI,并使用GTK编写其代码。我制作了一个GUI,这样,如果单击开始按钮,不同参数的值开始显示在Gtk标签中。我已经为所有参数创建了函数,并在开始按钮处理程序中调用每个函数。我在其中一个参数中添加了此行gtk_label_set_text(gtk_label(label),value)。当我运行代码时,它给了我一个错误:分段错误(内核转储)

所以我的第一个问题是为什么它会给我这个错误。? 我做了一些研究,发现了一些东西,所以我用我的值加了“&”,然后它没有给我分割错误,而是显示了其他东西。现在如何解决这个问题。? 代码如下:

x = receivebuffer[4];
y = receivebuffer[3];
z = receivebuffer[2];



F = (x<<16) | (y<<8) | z;
printf("Value of F is %d\n", F);
gtk_label_set_text(GTK_LABEL(Voltage_Entry_Label), &F);
x=receivebuffer[4];
y=接收缓冲区[3];
z=接收缓冲区[2];

F=(x根据gtk文档,gtk标签集文本应用作:

void    gtk_label_set_text(GtkLabel *label, const gchar *str);
这里,第二个参数是指针。这就是为什么当您将第二个参数作为int传递时,会出现分段错误。
当您将第二个参数作为&F传递时,它会自动将(int*)转换为(const gchar*),并给出ASCII 104表示的字符

因此,正确的方法是使用临时字符数组

char temp[5];
sprintf(temp, "%d", F);
gtk_label_set_text(GTK_LABEL(Voltage_Entry_Label), temp);

根据gtk文档,gtk_标签_集合_文本应用作:

void    gtk_label_set_text(GtkLabel *label, const gchar *str);
这里,第二个参数是指针。这就是为什么当您将第二个参数作为int传递时,会出现分段错误。
当您将第二个参数作为&F传递时,它会自动将(int*)转换为(const gchar*),并给出ASCII 104表示的字符

因此,正确的方法是使用临时字符数组

char temp[5];
sprintf(temp, "%d", F);
gtk_label_set_text(GTK_LABEL(Voltage_Entry_Label), temp);

根据gtk文档,gtk_标签_集合_文本应用作:

void    gtk_label_set_text(GtkLabel *label, const gchar *str);
这里,第二个参数是指针。这就是为什么当您将第二个参数作为int传递时,会出现分段错误。
当您将第二个参数作为&F传递时,它会自动将(int*)转换为(const gchar*),并给出ASCII 104表示的字符

因此,正确的方法是使用临时字符数组

char temp[5];
sprintf(temp, "%d", F);
gtk_label_set_text(GTK_LABEL(Voltage_Entry_Label), temp);

根据gtk文档,gtk_标签_集合_文本应用作:

void    gtk_label_set_text(GtkLabel *label, const gchar *str);
这里,第二个参数是指针。这就是为什么当您将第二个参数作为int传递时,会出现分段错误。
当您将第二个参数作为&F传递时,它会自动将(int*)转换为(const gchar*),并给出ASCII 104表示的字符

因此,正确的方法是使用临时字符数组

char temp[5];
sprintf(temp, "%d", F);
gtk_label_set_text(GTK_LABEL(Voltage_Entry_Label), temp);