g_key_file_get_string()如何工作?

kun*_*nir 1 c memory-leaks glib

我无法理解这个函数如何返回字符串gchar*.

它是否为字符串存储动态分配内存?那么,在这种情况下,内存泄漏可能吗?

typedef char gchar;

gchar *g_key_file_get_string(GKeyFile *key_file,
                              const gchar *group_name,
                              const gchar *key,GError **error)
Run Code Online (Sandbox Code Playgroud)

抱歉英语不好.

Mic*_*son 5

文件说:

返回:新分配的字符串,如果找不到指定的键,则返回NULL.

所以是的,函数在内部分配内存,你应该在使用后释放内存,以防止内存泄漏.

作为一般的经验法则,如果GLib函数gchar *希望您释放某些东西,或者const gchar *如果它们不需要,那么它们往往会返回.