函数

自:2.28

声明 [源]

void
g_list_free_full (
  GList* list,
  GDestroyNotify free_func
)

描述 [源]

是一个便捷方法,用于释放一个 GList 所使用的所有内存,并为每个元素的 data 调用 free_func

free_func 不应修改列表(例如,通过从未释放的元素中删除它)。

可以与 g_steal_pointer() 一起使用以确保列表头指针不会留下悬挂——这也具有一个非常不错的特性,即在释放列表元素之前清除头指针,以防止 free_func 发生双重释放。

GList *list_of_owned_things = ;  /<!-- -->* (transfer full) (element-type GObject) *<!-- -->/
g_list_free_full (g_steal_pointer (&list_of_owned_things), g_object_unref);

自:2.28

此函数对语言绑定不可直接使用。

参数

list

类型: gpointer 的列表

GList 的第一个链接。

数据由函数调用者拥有。
free_func

类型: GDestroyNotify

用于释放每个元素数据的函数。