Function
GLibArrayset_clear_func
since: 2.32
Declaration [src]
void
g_array_set_clear_func (
  GArray* array,
  GDestroyNotify clear_func
)
Description [src]
Sets a function to clear an element of array.
The clear_func will be called when an element in the array
data segment is removed and when the array is freed and data
segment is deallocated as well. clear_func will be passed a
pointer to the element to clear, rather than the element itself.
Note that in contrast with other uses of GDestroyNotify
functions, clear_func is expected to clear the contents of
the array element it is given, but not free the element itself.
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);
Available since: 2.32
This function is not directly available to language bindings.
Parameters
- array
- 
            Type: An array of gpointerA GArray.The data is owned by the caller of the function. 
- clear_func
- 
            Type: GDestroyNotifyA function to clear an element of array.