_CrtDoForAllClientObjects

为堆中的所有 _CLIENT_BLOCK 类型调用应用程序提供的函数(仅限调试版本)。

语法

void _CrtDoForAllClientObjects(
   void ( * pfn )( void *, void * ),
   void *context
);

参数

pfn
指向应用程序提供的函数回调函数的指针。 此函数的第一个参数指向数据。 第二个参数是传递给对 _CrtDoForAllClientObjects的调用的上下文指针。

context
指向要传递给应用程序提供的函数的应用程序提供的上下文的指针。

注解

_CrtDoForAllClientObjects 在堆链接列表中搜索具有 _CLIENT_BLOCK 类型的内存块,当找到此类型的块时,将调用应用程序提供的函数。 找到的块和 context 参数将作为参数传递给应用程序提供的函数。 在调试过程中,应用程序可以通过显式调用调试堆函数以分配内存并指定向块分配 _CLIENT_BLOCK 块类型,来跟踪一组特定分配。 然后,可以在泄露检测和内存状态报告期间,单独跟踪并分别报告这些块。

如果未启用 _crtDbgFlag 标志的 _CRTDBG_ALLOC_MEM_DF 位域,会立即返回 _CrtDoForAllClientObjects。 未定义 _DEBUG 时,会在预处理过程中删除对 _CrtDoForAllClientObjects 的调用。

有关 _CLIENT_BLOCK 类型以及其他调试函数如何使用它的详细信息,请参阅 Types of blocks on the debug heap的调用的上下文指针。 若要了解如何在基堆的调试版本中分配、初始化和管理内存块,请参阅 CRT 调试堆详细信息

如果 pfnNULL,则会调用无效的参数处理程序,如参数验证中所述。 如果允许继续执行,则将 errno_doserrno_sys_errlist_sys_nerr 设置为 EINVAL,并且会返回函数。

要求

例程 必需的标头
_CrtDoForAllClientObjects <crtdbg.h>、<errno.h>

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

库:仅限通用 C 运行时库的调试版本

另请参阅

调试例程
_CrtSetDbgFlag
堆状态报告函数
_CrtReportBlockType