函数

since: 2.76

声明 [src]

GPtrArray*
g_ptr_array_new_from_null_terminated_array (
  gpointer* data,
  GCopyFunc copy_func,
  gpointer copy_func_user_data,
  GDestroyNotify element_free_func
)

描述 [src]

创建一个新的 GPtrArray,复制 data 中的指针(在计算其长度后具有引用计数为 1)。这避免了需要逐个手动添加每个元素。如果提供了 copy_func,则用于复制新数组中的数据。它还设置 element_free_func,当通过 g_ptr_array_unref() 销毁数组、调用 g_ptr_array_free()free_segment 设置为 TRUE 或删除元素时,用于释放每个元素。

如果 data 中有超过 G_MAXUINT 个元素,则不要使用它。 GPtrArray 在 #guint 中存储其数据的长度,这可能比

since: 2.76

此函数不适合语言绑定直接使用。

参数

data

类型:一个指针的数组 gpointer

一个指针数组,以 NULL 结尾;或 NULL 表示空数组。

参数可以是 NULL
该数组必须是 NULL 结尾的。
数据由函数的调用者拥有。
copy_func

类型: GCopyFunc

用于复制数组中每个元素的复制函数或 NULL

copy_func_user_data

类型: gpointer

将用户数据传递给copy_func,或NULL

参数可以是 NULL
数据由函数的调用者拥有。
element_free_func

类型: GDestroyNotify

一个在array销毁时释放元素或者NULL的函数。

返回值

类型:一个指针的数组 gpointer

一个新的GPtrArray

函数的调用者拥有这些数据,并负责释放它。