我的代码:
char* fileName;
fileName=g_filename_from_utf8(gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)),-1,NULL,NULL,NULL);
无法引用从gtk_file_chooser_get_filename()返回的字符串,因此无法释放它。这是内存泄漏吗?我应该将它分配给一个标识符然后free()而不是直接将它传递给g_filename_from_utf8()吗?
答案 0 :(得分:2)
是的,这将是内存泄漏。您必须使用标记here
的g_free()释放它另外,您必须检查NULL
,因为gtk_file_chooser_get_filename
也可能因错误而返回NULL
。