_aligned_free_dbg

释放使用 _aligned_malloc_aligned_offset_malloc 分配的内存块(仅调试)。

语法

void _aligned_free_dbg(
   void *memblock
);

参数

memblock
指向返回到 _aligned_malloc_aligned_offset_malloc 函数的内存块的指针。

注解

_aligned_free_dbg 函数是 _aligned_free 函数的调试版本。 未定义 _DEBUG 时,每个对 _aligned_free_dbg 的调用都简化为对 _aligned_free 的调用。 _aligned_free_aligned_free_dbg 都可释放基堆中的内存块,但是 _aligned_free_dbg 还包含一种调试功能:能够在堆链接列表中保留已释放的块,以便模拟内存不足的情况。

在执行释放操作之前,_aligned_free_dbg 将在所有指定的文件和块位置上执行有效性检查。 应用程序不应提供此信息。 当释放内存块时,调试堆管理器自动检查用户部分两侧的缓冲区的完整性。 如果发生覆盖,则将发出错误报告。 如果设置了 _crtDbgFlag 标志的 _CRTDBG_DELAY_FREE_MEM_DF 位域,则将使用值 0xDD 填充释放的块、为其分配 _FREE_BLOCK 块类型,以及将其保留在内存块的堆链接列表中。

如果在释放内存时发生错误,则根据操作系统中关于错误性质的信息设置 errno。 有关详细信息,请参阅errno, _doserrno, _sys_errlist_sys_nerr.

若要了解如何在基堆的调试版本中分配、初始化和管理内存块,请参阅 CRT 调试堆详细信息。 若要了解分配块类型及其使用方式,请参阅调试堆上的块类型。 有关标准堆函数与调试版本之间的差异的信息,请参阅堆分配函数的调试版本

要求

例程 必需的标头
_aligned_free_dbg <crtdbg.h>

有关兼容性的详细信息,请参阅 兼容性

另请参阅

调试例程