我的代码:

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()返回的字符串,因此无法释放该字符串。这是内存泄漏吗?我应该把它分配给一个标识符,然后释放它而不是直接从utf8()传递给g_filename_吗?

最佳答案

是的,这将是内存泄漏。您必须使用g_free()将其释放,如前所述here
此外,还必须检查NULL因为gtk_file_chooser_get_filename也可能在出错时返回NULL

07-24 09:38
查看更多