我有以下代码:
int main()
{
const gchar *wew = gtk_entry_get_text(GTK_ENTRY(gtkentrywidget));
return 0;
}
gtk_entry_get_text()
返回一个const gchar*
,那么是否需要释放wew
,为什么? 最佳答案
gtk_entry_get_text
返回const gchar*
而不是gchar*
,以防止您尝试释放内存。函数的文档甚至告诉您。当然,如果将返回值强制转换为gchar*
,则可以释放它,但这仅仅是因为C语言不会阻止您执行愚蠢的事情。
例如,由于GtkEntry内部使用了该内存块,因此,如果释放该内存块,然后再调用gtk_entry_set_text
,则程序将崩溃。这是因为尝试写入的内存未分配...
关于c - “const gchar *”是什么意思,使用后是否需要释放该内存?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5968745/