函数

GLibPtrArraynew_null_terminated

since: 2.74

声明 [src]

GPtrArray*
g_ptr_array_new_null_terminated (
  guint reserved_size,
  GDestroyNotify element_free_func,
  gboolean null_terminated
)

描述 [src]

类似于 g_ptr_array_new_full(),但还可以将数组设置为以 NULL 结尾。以 NULL 结尾的指针数组在最后一个元素之后有一个额外的 NULL 指针,超出当前长度。

其他构造函数创建的 GPtrArray 不是自动以 NULL 结尾的。

注意,如果数组的长度为零且当前未分配数据数组,则 pdata 仍然为 NULL。只有在实际分配了数组时,%GPtrArray 才会为 pdata 插入 NULL 结尾。它不能保证总是分配数组。换句话说,如果长度为零,则 pdata 可以指向一个长度为零的 NULL 结尾数组或为 NULL

Available since: 2.74

此功能不直接对语言绑定可用。

参数

reserved_size

类型: guint

预分配指针的数量。如果 null_terminatedTRUE,则实际分配的缓冲区大小为 reserved_size 加 1,除非 reserved_size 为零,在这种情况下,则不会分配初始缓冲区。

element_free_func

类型: GDestroyNotify

一个用于在销毁 arrayNULL 时释放元素的函数。

null_terminated

类型: gboolean

是否使数组作为 NULL 结尾。

返回值

类型:一个 gpointer 数组

一个新的 GPtrArray

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