函数

GLibArraynew_take

自 2.76

声明 [源]

GArray*
g_array_new_take (
  gpointer data,
  gsize len,
  gboolean clear,
  gsize element_size
)

描述 [源]

创建一个新的GArraydata作为数组的数据,len作为长度,引用计数为1。

这避免了在数据可以继承时手动复制数据。在此调用之后,data属于GArray,并且可能不再可以被调用者修改。data的内存必须动态分配,最终将使用g_free()释放。

如果数组在释放时需要清除元素,请使用g_array_set_clear_func()设置一个GDestroyNotify函数来执行此任务。

如果lenelement_size大于G_MAXUINT,则不要使用它。GArray将其数据的长度存储在#guint中,该长度可能短于#gsize。

自 2.76

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

参数

data

类型:一个gpointer数组

element_size的元素数组,或者空数组的NULL

数组长度由len参数指定。
len

类型:gsize

data中元素的数量。

clear

类型:gboolean

如果GArray元素在分配时应该自动清零,则为TRUE

element_size

类型:gsize

每个元素的字节大小。

返回值

类型:一个gpointer数组

一个新的GArray

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