函数
GLibArrayset_clear_func
从:2.32
声明 [src]
void
g_array_set_clear_func (
GArray* array,
GDestroyNotify clear_func
)
描述 [src]
设置用于清除 array
中元素的函数。
当数组数据段中的元素被移除以及数组被释放且数据段也被释放时,将调用 clear_func
。将传递一个指向要清除的元素的指针,而不是元素本身。
请注意,与 GDestroyNotify
函数的其他用法不同,clear_func
预期会清除它所提供的数组元素的内部内容,而不是释放元素本身。
typedef struct
{
gchar *str;
GObject *obj;
} ArrayElement;
static void
array_element_clear (ArrayElement *element)
{
g_clear_pointer (&element->str, g_free);
g_clear_object (&element->obj);
}
// main code
GArray *garray = g_array_new (FALSE, FALSE, sizeof (ArrayElement));
g_array_set_clear_func (garray, (GDestroyNotify) array_element_clear);
// assign data to the structure
g_array_free (garray, TRUE);
从:2.32
此函数不可直接提供给语言绑定。