功能

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

返回值

类型: 一个指向 gpointer 的数组

一个新的 GPtrArray

该函数的调用者将获取该数据的所有权,并负责释放它。