since: 2.76


g_array_new_take (
  gpointer data,
  gsize len,
  gboolean clear,
  gsize element_size


Creates a new GArray with data as array data, len as length and a reference count of 1.

This avoids having to copy the data manually, when it can just be inherited. data will eventually be freed using g_free(), so must have been allocated with a suitable allocator.

In case the elements need to be cleared when the array is freed, use g_array_set_clear_func() to set a GDestroyNotify function to perform such task.

Do not use it if len or element_size are greater than G_MAXUINT. GArray stores the length of its data in #guint, which may be shorter than #gsize.

Available since: 2.76

This function is not directly available to language bindings.



Type: An array of gpointer

An array of elements of element_size, or NULL for an empty array.

The length of the array is specified in the len argument.

Type: gsize

The number of elements in data.


Type: gboolean

TRUE if GArray elements should be automatically cleared to 0 when they are allocated.


Type: gsize

The size of each element in bytes.

Return value

Type: An array of gpointer

A new GArray.

The caller of the function takes ownership of the data, and is responsible for freeing it.