函数

GLibSListfree_full

自: 2.28

声明 [源]

void
g_slist_free_full (
  GSList* list,
  GDestroyNotify free_func
)

描述 [源]

方便方法,它释放了 `GSList` 所使用的所有内存,并对每个元素的 data 调用了指定的销毁函数。

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

它可以用 g_steal_pointer() 一起使用,以确保列表头指针不会被保留为悬空指针 —— 这也有一个很好的特性,即在任何列表元素被释放之前,都会清除头指针,以防止 free_func 重复释放。

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

自:2.28

此函数不直接提供给语言绑定。

参数

列表

类型: 一个指向 gpointer 的列表

GSList 的第一个链接。

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

类型: GDestroyNotify

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