NAME
posix_memalign
—
aligned memory allocation
SYNOPSIS
#include
<stdlib.h>
int
posix_memalign
(void **memptr,
size_t alignment, size_t
size);
DESCRIPTION
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).
NOTES
posix_memalign
() should be used
judiciously as the algorithm that realizes the
alignment constraint can incur significant memory
overhead.
RETURN VALUES
The posix_memalign
() function returns the
value 0 if successful; otherwise it returns an error value.
ERRORS
The posix_memalign
() function will fail
if:
- [
EINVAL
] - The alignment parameter is not a power of 2 at least
as large as
sizeof
(void *). - [
ENOMEM
] - Memory allocation error.
SEE ALSO
free(3), malloc(3), realloc(3), reallocf(3), valloc(3), malloc_zone_memalign(3)
STANDARDS
The posix_memalign
() function conforms to
IEEE Std 1003.1-2001 (“POSIX.1”).