我的代码:
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
。