分配对齐的内存块。更多...
|
void * | mi_malloc_aligned (size_t size, size_t alignment) |
| 分配 size 字节,按 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) |
| 分配 size 字节,按 alignment 对齐,指定 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) |
|
分配对齐的内存块。
请注意,为了与非对齐分配 API 保持一致,alignment
始终在 size
之后,但这与 C 库中的 posix_memalign
和 aligned_alloc
不同。
◆ mi_calloc_aligned()
void * mi_calloc_aligned |
( |
size_t | 计数, |
|
|
size_t | size, |
|
|
size_t | 对齐 ) |
◆ mi_calloc_aligned_at()
void * mi_calloc_aligned_at |
( |
size_t | 计数, |
|
|
size_t | size, |
|
|
size_t | 对齐, |
|
|
size_t | 偏移量 ) |
◆ mi_malloc_aligned()
void * mi_malloc_aligned |
( |
size_t | size, |
|
|
size_t | 对齐 ) |
分配 size 字节,按 alignment 对齐。
- 参数
-
size | 要分配的字节数。 |
对齐 | 分配内存的最小对齐方式。 |
- 返回
- 指向已分配内存的指针,如果内存不足,或者对齐方式不是 2 的幂(包括 0),则为 NULL。size 不受限制(不必是 alignment 的整数倍)。返回的指针按 alignment 对齐,即
(uintptr_t)p % alignment == 0
。如果以 size 0 调用,则返回一个唯一的指针。
请注意,为了与非对齐分配 API 保持一致,alignment
始终在 size
之后,但这与 C 库中的 posix_memalign
和 aligned_alloc
不同。
- 另请参见
- aligned_alloc (在标准 C11 库中,参数已切换!)
-
_aligned_malloc (在 Windows 上)
-
aligned_alloc (在 BSD 上,参数已切换!)
-
posix_memalign (在 Posix 上,参数已切换!)
-
memalign (在 Linux 上,参数已切换!)
◆ mi_malloc_aligned_at()
void * mi_malloc_aligned_at |
( |
size_t | size, |
|
|
size_t | 对齐, |
|
|
size_t | 偏移量 ) |
分配 size 字节,按 alignment 对齐,指定 offset。
- 参数
-
size | 要分配的字节数。 |
对齐 | 分配内存的最小对齐方式,在 offset 处。 |
偏移量 | 应进行对齐的偏移量。 |
- 返回
- 指向已分配内存的指针,如果内存不足,或者对齐方式不是 2 的幂(包括 0),则为 NULL。size 不受限制(不必是 alignment 的整数倍)。返回的指针按 alignment 对齐,即
(uintptr_t)p % alignment == 0
。如果以 size 0 调用,则返回一个唯一的指针。
- 另请参见
- _aligned_offset_malloc (在 Windows 上)
◆ mi_realloc_aligned()
void * mi_realloc_aligned |
( |
void * | p, |
|
|
size_t | newsize, |
|
|
size_t | 对齐 ) |
◆ mi_realloc_aligned_at()
void * mi_realloc_aligned_at |
( |
void * | p, |
|
|
size_t | newsize, |
|
|
size_t | 对齐, |
|
|
size_t | 偏移量 ) |
◆ mi_zalloc_aligned()
void * mi_zalloc_aligned |
( |
size_t | size, |
|
|
size_t | 对齐 ) |
◆ mi_zalloc_aligned_at()
void * mi_zalloc_aligned_at |
( |
size_t | size, |
|
|
size_t | 对齐, |
|
|
size_t | 偏移量 ) |