_aligned_offset_malloc

在指定对齐边界分配内存。

语法

void * _aligned_offset_malloc(
   size_t size,
   size_t alignment,
   size_t offset
);

参数

size
请求的内存分配的大小。

alignment
对齐值,必须是 2 的整数次幂。

offset
用于强制对齐的内存分配中的偏移量。

返回值

指向已分配的内存块的指针或 NULL(如果操作失败)。

备注

_aligned_offset_malloc 在需要对嵌套元素进行对齐的情况下很有用;例如,嵌套类需要进行对齐的情况。

_aligned_offset_malloc 基于 malloc;有关详细信息,请参阅 malloc

_aligned_offset_malloc 被标记为 __declspec(noalias)__declspec(restrict),也就是说确保该函数不能修改全局变量,并且指针返回不使用别名。 有关详细信息,请参阅 noaliasrestrict

如果内存分配失败或请求的大小大于 errno,则此函数会将 ENOMEM 设置为 _HEAP_MAXREQ。 有关 errno 的详细信息,请参阅 errno_doserrno_sys_errlist_sys_nerr。 此外,_aligned_offset_malloc 将验证其参数。 如果 alignment 不是 2 的幂,或者 offset 为非零且大于或等于 size,则此函数将调用无效的参数处理程序,如参数验证中所述。 如果允许执行继续,则此函数将返回 NULL 并将 errno 设置为 EINVAL

默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态

要求

例程 必需的标头
_aligned_offset_malloc <malloc.h>

示例

有关详细信息,请参阅 _aligned_malloc

另请参阅

数据对齐