Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C g_key_file_get_string()如何工作?_C_Memory Leaks_Glib - Fatal编程技术网

C g_key_file_get_string()如何工作?

C g_key_file_get_string()如何工作?,c,memory-leaks,glib,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)

我无法理解此函数如何将字符串返回为
gchar*

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

typedef char gchar;

gchar *g_key_file_get_string(GKeyFile *key_file,
                              const gchar *group_name,
                              const gchar *key,GError **error)
对不起,英语不好。

老师说:

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

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

根据一般经验,如果GLib函数希望您释放某些内容,则会返回
gchar*
,如果不想,则返回
const gchar*

函数会说:

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

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


作为一般经验法则,如果想让你释放一些东西,则GLUB函数倾向于返回<代码> GCHAR */C++ >,或<代码> const gCHAR */COD>如果它们不存在。

这不是C++。除此之外:文档说明了什么?这不是C++。除此之外:文档中说了什么?