gtk_entry_get_text
возвращает const gchar*
вместо gchar*
, чтобы предотвратить попытки освобождения памяти. Документация по функции даже говорит вам об этом. Конечно, если вы приведете возвращенное значение к gchar*
, вы сможете его освободить, но это только потому, что язык C не мешает вам делать глупости.
Например, поскольку этот кусок памяти внутренне используется вашим GtkEntry, если вы освободите этот кусок памяти, а затем вызовете gtk_entry_set_text
, ваша программа потерпит крах. Это потому, что память, в которую он пытается записать, не выделена ...