_aligned_offset_malloc

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

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

参数

  • [in] size
    请求的内存分配的大小。

  • [in] alignment
    对齐值必须是2的整数次幂。

  • [in] offset
    强制对齐内存分配中的偏移量。

返回值

如果操作失败,则指针指向分配或是为 NULL 的内存块。

备注

在嵌套元素中需要对齐的情况下,_aligned_offset_malloc 是有用的;例如,如果在嵌套类中需要对齐。

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

_aligned_offset_malloc 标记为 __declspec(noalias)__declspec(restrict);这意味着函数保证不修改全局变量,和返回的指针不用做别名。 有关更多信息,请参见 没有别名限制

如果内存分配失败或是如果请求的大小比_HEAP_MAXREQ 更大,则函数将 ENOMEM 设置为 errno 。 有关 errno的更多信息,请参见errno、_doserrno、_sys_errlist 和 _sys_nerr。 此外,_aligned_offset_malloc 验证其参数。 如果 alignment 不是2的幂次或是如果 offset 大于等于 size 和非零,这函数调用无效参数处理程序,就如参数验证 描述的。 如果允许执行继续,则这函数返回 NULL 并将 errno 设置为 EINVAL。

要求

例程

必需的标头

_aligned_offset_malloc

<malloc.h>

示例

有关详细信息,请参阅 _aligned_malloc

请参见

参考

数据对齐