| POSIX_MEMALIGN(3) | Library Functions Manual | POSIX_MEMALIGN(3) |
posix_memalign,
aligned_alloc — aligned
memory allocation
Standard C Library (libc, -lc)
#include
<stdlib.h>
int
posix_memalign(void
**ptr, size_t
alignment, size_t
size);
void *
aligned_alloc(size_t
alignment, size_t
size);
The
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).
The 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.
The posix_memalign() and
aligned_alloc() functions will fail if:
The posix_memalign() function will also
fail if
EINVAL]sizeof(void *).The posix_memalign() function conforms to
IEEE Std 1003.1-2001 (“POSIX.1”). The
aligned_alloc() function conforms to
ISO/IEC 9899:2011
(“ISO C11”).
ISO/IEC 9899:2011 (“ISO C11”) required size to be an integer multiple of alignment. This requirement was removed in later standards.
| July 27, 2018 | NetBSD 11.0 |