函数

GLibArraynew_take_zero_terminated

自:2.76

声明 [src]

GArray*
g_array_new_take_zero_terminated (
  gpointer data,
  gboolean clear,
  gsize element_size
)

描述 [src]

创建一个新的GArray,将其data作为数组数据,计算其长度并设置引用计数为1。

这避免了需要手动复制数据,在这种情况下,可以继承它。在这个调用之后,data属于GArray,可能不再由调用者修改。data的内存必须动态分配,最终将使用g_free()来释放。

长度通过迭代data,直到找到第一个NULL元素来计算。

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

如果data的长度或element_size大于G_MAXUINT,则不要使用它。GArray将其数据的长度存储在高位guint中,可能比#gsize短。

自:2.76

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

参数

data

类型: 一个gpointer数组

包含具有element_size的元素的数组。

该数组必须是NULL终止的。
clear

类型: gboolean

TRUE如果当分配时,GArray的每个元素应该自动清除为0。

element_size

类型: gsize

每个元素的字节大小。

返回值

类型: 一个gpointer数组

一个新的GArray

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