_aligned_offset_recalloc

更改随 _aligned_malloc_aligned_offset_malloc 并初始化内存到 0 的范围内存块。

void * _aligned_offset_recalloc(
   void *memblock, 
   size_t num, 
   size_t size, 
   size_t alignment,
   size_t offset
);

参数

  • memblock
    当前内存块指针。

  • num
    元素的数目。

  • size
    字节长度每个元素。

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

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

返回值

_aligned_offset_recalloc 返回无效指针重新分配的 (也可能是移动) 内存块。 返回值是 NULL ,如果大小为零,而缓冲区参数不是 NULL,或者,如果没有展开块足够的可用内存到给定范围。 在第一种情况下,原始的块被释放。 在第二种情况下,原始的块保持不变。 返回值指向确保为任何类型的对象存储正确对齐的存储空间。 获取对一个类型的指针除了之外无效,将使用一个返回值的类型转换。

_aligned_offset_recalloc 标记为 __declspec(noalias)__declspec(restrict),这意味着函数保证不修改全局变量,返回的指针没有抗锯齿。 有关更多信息,请参见 noalias限制

备注

_aligned_offset_malloc_aligned_offset_recalloc 允许结构对齐在结构中的偏移量。

_aligned_offset_recalloc 基于 malloc。 有关使用 _aligned_offset_malloc的更多信息,请参见 malloc。 如果 memblock 是 NULL,在内部函数调用 _aligned_offset_malloc 。

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

要求

实例

必需的头

_aligned_offset_recalloc

malloc.h

.NET Framework 等效项

不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见 平台调用示例

请参见

参考

数据对齐

_recalloc

_aligned_recalloc