1

我不明白这个函数如何将字符串返回为gchar*.

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

typedef char gchar;

gchar *g_key_file_get_string(GKeyFile *key_file,
                              const gchar *group_name,
                              const gchar *key,GError **error)

抱歉英语不好。

4

1 回答 1

5

文档说:

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

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

作为一般的经验法则,如果 GLib 函数gchar *想要你释放某些东西,或者const gchar *它们不想要,它们往往会返回。

于 2013-10-20T17:54:35.953 回答