_free_dbg

释放内存块在堆 (请只调试版本)。

void _free_dbg( 
   void *userData,
   int blockType 
);

参数

  • userData
    对分配的内存块指针被释放。

  • blockType
    分配的内存块类型已释放: _CLIENT_BLOCK、 _NORMAL_BLOCK或 _IGNORE_BLOCK。

备注

_free_dbg功能是 函数的 " debug " 版本。 当 _DEBUG 未定义时,每个调用 _free_dbg 减少到 free的调用。 free 和 _free_dbg 在基堆释放内存块,但是, _free_dbg满足两个调试功能:能够保留已释放堆中的块连接表模拟内存不足情况和一个块类型的参数释放特定分配类型。

_free_dbg 对所有已指定文件的一个有效性检查并在继续操作之前可用块位置。 应用程序不需要提供此信息。 当释放内存块时,调试堆管理器自动检查缓冲区的完整性。用户部分的每一端,将发出错误报告,如果发生复盖。 如果 _CRTDBG_DELAY_FREE_MEM_DF位的 _crtDbgFlag 标志的字段设置,已释放的块填充该值 0xDD,分配块类型的 _FREE_BLOCK ,并且,保留在堆的链接列表内存块。

如果错误发生在释放内存, errno 设置与操作系统的信息在失败的性质。 有关更多信息,请参见 errno、_doserrno、_sys_errlist和_sys_nerr

有关如何的信息存储在基堆的调试版本中分配,初始化,并管理,请参见 内存管理和调试堆。 有关分配的信息块类型以及如何使用它们,请参见 调试堆上的块类型。 有关调用标准堆函数之间的差异的信息及其调试在应用程序的调试版本的版本,请参见 使用调试版本与基版本

要求

实例

必需的头

_free_dbg

crtdbg.h

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

示例

有关此示例演示如何使用 _free_dbg,请参见 crt_dbg2

.NET Framework 等效项

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

请参见

参考

调试实例

_malloc_dbg