_aligned_malloc_dbg

分配在指定的对齐边界的内存与调试标头的其他空间并复盖缓冲区 (请只调试版本)。

void * _aligned_malloc_dbg(
    size_t size, 
    size_t alignment,
   const char *filename,
   int linenumber 
);

参数

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

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

  • [in] filename
    对请求分配操作或空源文件的名称的指针。

  • [in] linenumber
    在赋值操作是请求或空的源文件中的行号。

返回值

对分配或 NULL 的指针内存块,如果操作失败。

备注

_aligned_malloc_dbg 是 _aligned_malloc 函数的 " debug " 版本。 当 _DEBUG 未定义时,每个调用 _aligned_malloc_dbg 减少到 _aligned_malloc的调用。 _aligned_malloc 和 _aligned_malloc_dbg 分配内存块在基堆的,但是, _aligned_malloc_dbg 提供一些调试功能:在测试块的两侧用户部分的缓冲区对于泄漏和 filename/确定分配请求的原点的linenumber 信息。

_aligned_malloc_dbg 与请求的 size分配内存块。稍有更多的空间。 调试堆管理器用于附加空间链接调试内存块,并提供应用程序提供调试标题信息并复盖缓冲区。 当分配块,块的用户部分填充该值 0xCD,并且每个复盖缓冲区用 0xFD 填充。

_aligned_malloc_dbg 设置 errno 到 ENOMEM ,如果内存分配失败,或如果内存需要的数量 (前面提到的包含开销) 超过 _HEAP_MAXREQ。 有关此更改和其他错误代码的信息,请参见 errno、_doserrno、_sys_errlist和_sys_nerr。 此外, _aligned_malloc_dbg 验证其参数。 如果 alignment 不是 2 的次幂或 size 为零,此函数调用的参数无效处理程序,如 参数验证所述。 如果执行允许继续,此函数返回 NULL 并将 errno 到 EINVAL。

有关如何的信息存储在基堆的调试版本中分配,初始化,并管理,请参见 内存管理和调试堆

有关分配的信息块类型以及如何使用它们,请参见 调试堆上的块类型

要求

实例

必需的头

_aligned_malloc_dbg

crtdbg.h

有关更多兼容性信息,请参见中介绍的 兼容性

只调试 C 运行库 的版本。

.NET Framework 等效项

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

请参见

参考

调试实例