函数

GLibPtrArraynew_take

since: 2.76

声明 [src]

GPtrArray*
g_ptr_array_new_take (
  gpointer* data,
  gsize len,
  GDestroyNotify element_free_func
)

描述 [src]

创建一个带有指向 data、长度 len 和引用计数为 1 的新 GPtrArray

这避免了手动复制此类数据。此调用后,data 属于 GPtrArray,不能由调用者修改。该内存需要动态分配,并最终将使用 g_free() 释放。

它还设置在通过 g_ptr_array_unref()、当调用 g_ptr_array_free()` 且设置了 free_segmentTRUE 或移除元素时销毁数组时的 element_free_func

如果 len 大于 Z_MAXUINT,请勿使用它。GPtrArray 在 #guint 中存储其数据长度,这可能短于

gsize.

可用自:2.76

此函数不直接对语言绑定可用。

参数

data

类型: 一个gpointer数组

指针数组或空数组的 NULL

此参数可以是 NULL
数组的长度在 len 参数中指定。
调用函数负责获取数据的所有权,并负责释放它。
len

类型: gsize

data 中指针的数量。

element_free_func

类型: GDestroyNotify

在销毁 array 时释放元素的函数或 NULL

返回值

类型: 一个gpointer数组

一个新 GPtrArray

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