_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)
,也就是说确保该函数不能修改全局变量,并且指针返回不使用别名。 有关详细信息,请参阅 noalias
和 restrict
。
如果内存分配失败或请求的大小大于 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
。