| POSIX_MEMALIGN(3) | Library Functions Manual | POSIX_MEMALIGN(3) | 
posix_memalign, aligned_alloc
  —
#include <stdlib.h>
int
  
  posix_memalign(void
    **ptr, size_t
    alignment, size_t
    size);
void *
  
  aligned_alloc(size_t
    alignment, size_t
    size);
posix_memalign() function allocates
  size bytes of memory such that the allocation's base
  address is an even multiple of alignment, and returns
  the allocation in the value pointed to by ptr. The
  requested alignment must be a power of 2 at least as
  large as sizeof(void *).
The aligned_alloc() function allocates
    size bytes of memory such that the allocation's base
    address is an even multiple of alignment. The
    requested alignment must be a power of 2.
Memory that is allocated via
    posix_memalign() or
    aligned_alloc() can be used as an argument in
    subsequent calls to
    realloc(3) and
    free(3).
posix_memalign() function returns the value 0 if
  successful; otherwise it returns an error value.
The aligned_alloc() function returns a
    pointer to the allocated memory if successful; on failure it returns
    NULL and sets errno to
    indicate the error.
posix_memalign() and
  aligned_alloc() functions will fail if:
The posix_memalign() function will also
    fail if
EINVAL]sizeof(void *).posix_memalign() function conforms to
  IEEE Std 1003.1-2001 (“POSIX.1”). The
  aligned_alloc() function conforms to
  ISO/IEC 9899:2018 (“ISO C18”).
| July 27, 2018 | NetBSD 10.0 |