函数
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 的函数。