### Function

# GLib aligned_alloc

since: 2.72

#### Declaration [src]

    gpointer
    g_aligned_alloc (
      gsize n_blocks,
      gsize n_block_bytes,
      gsize alignment
    )

#### Description [src]

This function is similar to g_malloc(), allocating (`n_blocks` * `n_block_bytes`) bytes, but care is taken to align the allocated memory to with the given alignment value. Additionally, it will detect possible overflow during multiplication.

If the allocation fails (because the system is out of memory), the program is terminated.

Aligned memory allocations returned by this function can only be freed using `g_aligned_free_sized()` or g_aligned_free().

Available since: 2.72

#### Parameters

`n_blocks`

  Type: `gsize`

  The number of blocks to allocate.

`n_block_bytes`

  Type: `gsize`

  The size of each block in bytes.

`alignment`

  Type: `gsize`

  The alignment to be enforced, which must be a positive power of 2 and a multiple of `sizeof(void*)`.

#### Return value

Type: `gpointer`

The allocated memory.

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