POSIX_MEMALIGN(3) | Library Functions Manual | POSIX_MEMALIGN(3) |
posix_memalign
—
aligned memory allocation
#include
<stdlib.h>
int
posix_memalign
(void **memptr,
size_t alignment, size_t
size);
The
posix_memalign
()
function allocates size bytes of memory such that the
allocation's base address is an exact multiple of
alignment, and returns the allocation in the value
pointed to by memptr.
The requested alignment must be
a power of 2 at least as large as
sizeof
(void
*).
Memory that is allocated via
posix_memalign
()
can be used as an argument in subsequent calls to
realloc(3),
reallocf(3), and
free(3). (Note however, that the
allocation returned by realloc(3) or
reallocf(3) is not guaranteed to
preserve the original alignment).
posix_memalign
() should be used
judiciously as the algorithm that realizes the
alignment constraint can incur significant memory
overhead.
The posix_memalign
() function returns the
value 0 if successful; otherwise it returns an error value.
The posix_memalign
() function will fail
if:
free(3), malloc(3), realloc(3), reallocf(3), valloc(3), malloc_zone_memalign(3)
The posix_memalign
() function conforms to
IEEE Std 1003.1-2001 (“POSIX.1”).
April 9, 2008 | macOS 15.0 |