函数

GLibPtrArrayfree

声明 [-src]

gpointer*
g_ptr_array_free (
  GPtrArray* array,
  gboolean free_segment
)

描述 [src]

释放为GPtrArray分配的内存。如果free_segment设置为TRUE,则还会释放包含元素的内存块。如果要释放GPtrArray包装器但保留底层数组的其他用途,则通过FALSE。如果数组的引用计数大于一个,则保留GPtrArray包装器但将数组的长度设置为零。

如果数组的元素指向动态分配的内存,并且没有为array设置任何GDestroyNotify函数,则应该单独释放,如果free_segment设置为TRUE

注意,如果数组是NULL终止且free_segment设置为FALSE,则始终返回分配的NULL终止的缓冲区。如果Creators之前是NULL,则分配新的缓冲区。

此函数不是线程安全的。如果在多个线程中使用GPtrArray,则只能使用原子的g_ptr_array_ref()g_ptr_array_unref()函数。

此函数不能直接由语言绑定访问。

参数

array

类型: gpointer数组

一个GPtrArray

数据由函数的调用者拥有。
free_segment

类型: gboolean

如果设置为TRUE,则实际上释放指针数组。

返回值

类型: gpointer*

如果 free_segmentFALSE,则指针数组为,否则为 NULL。应使用 g_free() 释放指针数组。

函数的调用者负责拥有数据,并负责释放它。
返回值可以是 NULL