### Function Macro

# GLib array_index

#### Declaration

    #define g_array_index (
      a,
      t,
      i
    )

#### Description

Returns the element of a `GArray` at the given index. The return value is cast to the given type. This is the main way to read or write an element in a `GArray`.

Writing an element is typically done by reference, as in the following example. This example gets a pointer to an element in a `GArray`, and then writes to a field in it:

      EDayViewEvent *event;
      // This gets a pointer to the 4th element in the array of
      // EDayViewEvent structs.
      event = &g_array_index (events, EDayViewEvent, 3);
      event->start_time = g_get_current_time ();

This example reads from and writes to an array of integers:

      g_autoptr(GArray) int_array = g_array_new (FALSE, FALSE, sizeof (guint));
      for (guint i = 0; i < 10; i++)
        g_array_append_val (int_array, i);

      guint *my_int = &g_array_index (int_array, guint, 1);
      g_print ("Int at index 1 is %u; decrementing it\n", *my_int);
      *my_int = *my_int - 1;

This function is not directly available to language bindings.

#### Parameters

`a`

  Type: `-`

  A `GArray`.

`t`

  Type: `-`

  The type of the elements.

`i`

  Type: `-`

  The index of the element to return.