Allokation von ausgerichteten Speicherblöcken. Mehr...
|
| 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) |
| |
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.
◆ 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
-
| size | Anzahl der zu allokierenden Bytes. |
| alignment | Die 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
-
| size | Anzahl der zu allokierenden Bytes. |
| alignment | Die minimale Ausrichtung des allokierten Speichers am offset. |
| offset | Der 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 ) |