mi-malloc 1.8/2.1
 
Lade...
Suche...
Keine Treffer
Ausgerichtete Allokation

Allokation von ausgerichteten Speicherblöcken. Mehr...

Funktionen

void * mi_malloc_aligned (size_t size, size_t alignment)
 Allokiert size Bytes, ausgerichtet auf 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)
 Allokiert size Bytes, ausgerichtet auf alignment, mit einem angegebenen 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)
 

Detaillierte Beschreibung

Allokation von ausgerichteten Speicherblöcken.

Beachten Sie, dass alignment aus Konsistenzgründen mit der API für nicht ausgerichtete Allokation immer nach size folgt, was sich aber leider von posix_memalign und aligned_alloc in der C-Bibliothek unterscheidet.

Funktionsdokumentation

◆ 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 )

Allokiert size Bytes, ausgerichtet auf alignment.

Parameter
sizeAnzahl der zu allokierenden Bytes.
alignmentDie minimale Ausrichtung des allokierten Speichers.
Rückgabe
Zeiger auf den allokierten Speicher oder NULL, wenn der Speicher voll ist oder die Ausrichtung keine Zweierpotenz ist (einschließlich 0). Die size ist uneingeschränkt (und muss kein ganzzahliges Vielfaches der alignment sein). Der zurückgegebene Zeiger ist um alignment ausgerichtet, d.h. (uintptr_t)p % alignment == 0. Gibt einen eindeutigen Zeiger zurück, wenn mit size 0 aufgerufen wird.

Beachten Sie, dass alignment aus Konsistenzgründen mit der API für nicht ausgerichtete Allokation immer nach size folgt, was sich aber leider von posix_memalign und aligned_alloc in der C-Bibliothek unterscheidet.

Siehe auch
aligned_alloc (in der Standard-C11-Bibliothek, mit vertauschten Argumenten!)
_aligned_malloc (unter Windows)
aligned_alloc (auf BSD, mit vertauschten Argumenten!)
posix_memalign (auf Posix, mit vertauschten Argumenten!)
memalign (auf Linux, mit vertauschten Argumenten!)

◆ mi_malloc_aligned_at()

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

Allokiert size Bytes, ausgerichtet auf alignment, mit einem angegebenen offset.

Parameter
sizeAnzahl der zu allokierenden Bytes.
alignmentDie minimale Ausrichtung des allokierten Speichers am offset.
offsetDer Offset, der ausgerichtet werden soll.
Rückgabe
Zeiger auf den allokierten Speicher oder NULL, wenn der Speicher voll ist oder die Ausrichtung keine Zweierpotenz ist (einschließlich 0). Die size ist uneingeschränkt (und muss kein ganzzahliges Vielfaches der alignment sein). Der zurückgegebene Zeiger ist um alignment ausgerichtet, d.h. (uintptr_t)p % alignment == 0. Gibt einen eindeutigen Zeiger zurück, wenn mit size 0 aufgerufen wird.
Siehe auch
_aligned_offset_malloc (unter 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 )