次の方法で共有


_CrtDoForAllClientObjects

ヒープ内のすべての _CLIENT_BLOCK 型に対して、アプリケーションによって提供される関数を呼び出します (デバッグ バージョンのみ)。

構文

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

パラメーター

pfn
アプリケーションによって提供された関数コールバック関数へのポインター。 この関数の最初のパラメーターは、データを指します。 2 番目のパラメーターは、 _CrtDoForAllClientObjectsの呼び出しに渡されるコンテキスト ポインターです。

context
アプリケーションによって提供される関数に渡す、アプリケーションによって提供されるコンテキストへのポインター。

解説

_CrtDoForAllClientObjects 関数は、ヒープのリンク リストで _CLIENT_BLOCK 型のメモリ ブロックを検索し、この型のブロックがある場合は、アプリケーションによって提供される関数を呼び出します。 見つかったブロックと context パラメーターは、アプリケーションによって提供される関数に引数として渡されます。 デバッグ中に、アプリケーションはメモリを割り当てるためのデバッグ ヒープ関数を明示的に呼び出し、ブロックに _CLIENT_BLOCK ブロック型を割り当てるように指定することによって、割り当ての特定のグループを追跡できます。 これらのブロックは個別に追跡し、リーク検出やメモリ状態のレポート時に異なる方法で報告できます。

_crtDbgFlag フラグの_CRTDBG_ALLOC_MEM_DF ビット フィールドがオンになっていない場合、_CrtDoForAllClientObjectsはすぐに戻ります。 _DEBUG が定義されていない場合、_CrtDoForAllClientObjects の呼び出しは前処理で削除されます。

_CLIENT_BLOCK 型と、それが他のデバッグ関数によってどのように使用されるかの詳細については、「デバッグ ヒープ上のメモリ ブロックの型」を参照してください。 基本ヒープのデバッグ バージョンでのメモリ ブロックの割り当て、初期化、および管理方法については、「 CRT デバッグ ヒープの詳細を参照してください。

pfnNULL の場合は、「パラメーターの検証」で説明されているように、無効なパラメーター ハンドラーが呼び出されます。 実行を続行できる場合は、 errno_doserrno_sys_errlist、および _sys_nerrEINVAL に設定され、関数が返されます。

要件

ルーチンによって返される値 必須ヘッダー
_CrtDoForAllClientObjects <crtdbg.h>、<errno.h>

互換性の詳細については、「 Compatibility」を参照してください。

ライブラリ: ユニバーサル C ランタイム ライブラリのデバッグ バージョンのみ。

関連項目

デバッグ ルーチン
_CrtSetDbgFlag
ヒープ状態レポート関数
_CrtReportBlockType