功能
GLibPtrArraynew_take_null_terminated
自从:2.76
声明 [源]
GPtrArray*
g_ptr_array_new_take_null_terminated (
gpointer* data,
GDestroyNotify element_free_func
)
描述 [源]
创建一个新的 GPtrArray
,其中 data
为指针,计算其长度并设置引用计数为 1。
这避免了需要手动复制此类数据。在此调用之后,data
属于 GPtrArray
,并且不能再由调用者修改。该内存由调用者动态分配,最终将由 g_free() 释放。
长度通过迭代 data
直到找到第一个 NULL
元素来计算。
它还设置当数组通过 g_ptr_array_unref() 销毁或者当 g_ptr_array_free() 调用且 free_segment
设置为 TRUE
或移除元素时,用于释放每个元素的 element_free_func
。
如果 data
的长度大于 G_MAXUINT
,则不要使用它。GPtrArray
在 #guint 中存储其数据的长度,这可能比 gsize 更短。
自从:2.76
此功能对语言绑定不可直接访问。
参数
data
-
类型: 一个指向
gpointer
的数组指向器的数组,以
NULL
终端,或空NULL
数组。参数可以是 NULL
。该数组必须是 NULL
-终止的。调用方功能拥有数据的所有权,并负责释放它。 element_free_func
-
类型:
GDestroyNotify
在
array
销毁时用于释放元素的函数或NULL
。