函数

GLibPtrArraynew_from_array

自:2.76

声明 [源]

GPtrArray*
g_ptr_array_new_from_array (
  gpointer* data,
  gsize len,
  GCopyFunc copy_func,
  gpointer copy_func_user_data,
  GDestroyNotify element_free_func
)

描述 [源]

创建一个新的 GPtrArray,从 data 复制 len 个指针,并将数组的引用计数设置为 1。

这避免了需要手动逐个添加每个元素。

如果提供了 copy_func,则在将元素添加到新数组之前使用它来复制每个元素。如果它是 NULL,则直接复制指针。

它还为在销毁数组时释放每个元素设置了 element_free_func,无论是通过 g_ptr_array_unref()、在调用 g_ptr_array_free() 时将 free_segment 设置为 TRUE 或在删除元素时。

如果 len 大于 G_MAXUINT,则不要使用它。 GPtrArray 将其数据的长度存储在 #guint 中,这可能比

gsize.

自:2.76

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

参数

data

类型: 一个指向 gpointer 的数组

一个指针数组,或为空数组使用 NULL

参数可以是 NULL
数组长度在 len 参数中指定。
数据所有权属于函数的调用者。
len

类型: gsize

data 中的指针数量。

copy_func

类型: GCopyFunc

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

copy_func_user_data

类型: gpointer

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

参数可以是 NULL
数据所有权属于函数的调用者。
element_free_func

类型: GDestroyNotify

一个函数,在 array 销毁时释放元素,或 NULL

返回值

类型: 一个指向 gpointer 的数组

一个新的 GPtrArray

函数的调用者负责数据和对其的释放。