我有以下代码:

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/

10-09 08:44