mi-malloc 1.8/2.1
 
Loading...
Searching...
No Matches
Aligned Allocation

Functions

void * mi_malloc_aligned (size_t size, size_t alignment)
 Allocate size bytes aligned by alignment.
 
void * mi_zalloc_aligned (size_t size, size_t alignment)
 
void * mi_calloc_aligned (size_t count, size_t size, size_t alignment)
 
void * mi_realloc_aligned (void *p, size_t newsize, size_t alignment)
 
void * mi_malloc_aligned_at (size_t size, size_t alignment, size_t offset)
 Allocate size bytes aligned by alignment at a specified offset.
 
void * mi_zalloc_aligned_at (size_t size, size_t alignment, size_t offset)
 
void * mi_calloc_aligned_at (size_t count, size_t size, size_t alignment, size_t offset)
 
void * mi_realloc_aligned_at (void *p, size_t newsize, size_t alignment, size_t offset)
 

Detailed Description

Allocating aligned memory blocks. Note that alignment always follows size for consistency with the unaligned allocation API, but unfortunately this differs from posix_memalign and aligned_alloc in the C library.

Function Documentation

◆ mi_calloc_aligned()

void * mi_calloc_aligned ( size_t count,
size_t size,
size_t alignment )

◆ mi_calloc_aligned_at()

void * mi_calloc_aligned_at ( size_t count,
size_t size,
size_t alignment,
size_t offset )

◆ mi_malloc_aligned()

void * mi_malloc_aligned ( size_t size,
size_t alignment )

Allocate size bytes aligned by alignment.

Parameters
sizenumber of bytes to allocate.
alignmentthe minimal alignment of the allocated memory.
Returns
pointer to the allocated memory or NULL if out of memory. The returned pointer is aligned by alignment, i.e. (uintptr_t)p % alignment == 0.

Returns a unique pointer if called with size 0.

See also
aligned_alloc (in the standard C11 library, with switched arguments!)
_aligned_malloc (on Windows)
aligned_alloc (on BSD, with switched arguments!)
posix_memalign (on Posix, with switched arguments!)
memalign (on Linux, with switched arguments!)

◆ mi_malloc_aligned_at()

void * mi_malloc_aligned_at ( size_t size,
size_t alignment,
size_t offset )

Allocate size bytes aligned by alignment at a specified offset.

Parameters
sizenumber of bytes to allocate.
alignmentthe minimal alignment of the allocated memory at offset.
offsetthe offset that should be aligned.
Returns
pointer to the allocated memory or NULL if out of memory. The returned pointer is aligned by alignment at offset, i.e. ((uintptr_t)p + offset) % alignment == 0.

Returns a unique pointer if called with size 0.

See also
_aligned_offset_malloc (on Windows)

◆ mi_realloc_aligned()

void * mi_realloc_aligned ( void * p,
size_t newsize,
size_t alignment )

◆ mi_realloc_aligned_at()

void * mi_realloc_aligned_at ( void * p,
size_t newsize,
size_t alignment,
size_t offset )

◆ mi_zalloc_aligned()

void * mi_zalloc_aligned ( size_t size,
size_t alignment )

◆ mi_zalloc_aligned_at()

void * mi_zalloc_aligned_at ( size_t size,
size_t alignment,
size_t offset )