Я делаю GUI, используя Glade и записывая его код с помощью GTK. Я создаю графический интерфейс, чтобы при нажатии кнопки «Пуск» значения параметров показывались в Gtk Label. Я выполнил функции для всех параметров, и я вызываю каждую функцию в обработчике Start Button. Я добавил эту строку gtk_label_set_text (GTK_LABEL (метка), значение) в одном из параметров. Когда я запускаю код, он дает мне ошибку: Ошибка сегментации (Core сбрасывается).gtk_label_set_text() не работает должным образом
Так что мой первый вопрос, почему он дает мне эту ошибку.? Я провел некоторое исследование, и я нашел что-то, поэтому добавил «&» с моим значением, а затем он не дал мне ошибку сегментации, но отобразил что-то еще. Теперь, как это исправить. Ниже приведен код:
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);
receivebuffer это буфер, в котором я получаю данные, которые будут отображаться на этикетке. Только 4-й, 3-й и 2-й элементы полезны, поэтому я сохранил их в другой переменной, и я сделал какую-то простую логику, и, наконец, я получаю данные в F. Printf() дает результат вроде 104, но Gtk Label дает вывод, как T. Теперь F должен отображаться в Gtk Label.
Заключение: почему я должен использовать & для устранения ошибки сегментации. почему он дает мне что-то еще на Gtk Label.?
Спасибо, человек работает правильно –