应由调用者释放的C/Glib字符串

dri*_*ker 4 c glib

我正在使用glib,
它有很多函数可以返回应该自己释放的字符串.

我可以将这些功能传递给其他功能吗?

示例: function1返回必须为调用者释放的字符串. function2返回一个指向必须释放的字符串的指针.

gchar *string = function2(function1("something"));
g_free (string);
Run Code Online (Sandbox Code Playgroud)

我应该如何释放从function1返回的字符串?这有必要吗?

非常感谢,
对不起我的英语

Dav*_*veR 7

是的,有必要释放返回的字符串function1.要允许您这样做,您需要获取返回值的副本: -

gchar* temp = function1("something");
gchar* string = function2(temp);
g_free(temp);
g_free(string);
Run Code Online (Sandbox Code Playgroud)