### Function

# GLib Array steal

since: 2.64

#### Declaration

    gpointer
    g_array_steal (
      GArray* array,
      gsize* len
    )

#### Description

Frees the data in the array and resets the size to zero, while the underlying array is preserved for use elsewhere and returned to the caller.

If the array was created with the `zero_terminate` property set to `TRUE`, the returned data is zero terminated too.

If array elements contain dynamically-allocated memory, the array elements should also be freed by the caller.

A short example of use:

    ...
    gpointer data;
    gsize data_len;
    data = g_array_steal (some_array, &data_len);
    ...

Available since: 2.64

This function is not directly available to language bindings.

#### Parameters

`array`

  Type: An array of `gpointer`

  A `GArray`.

  The data is owned by the caller of the function.

`len`

  Type: `gsize*`

  Pointer to retrieve the number of elements of the original array.

  The argument will be set by the function.
  The argument can be `NULL`.

#### Return value

Type: `gpointer`

The element data, which should be freed using g_free().

The caller of the function takes ownership of the data, and is responsible for freeing it.
The return value can be `NULL`.