_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 デバッグ ヒープの詳細を参照してください。
pfn
が NULL
の場合は、「パラメーターの検証」で説明されているように、無効なパラメーター ハンドラーが呼び出されます。 実行を続行できる場合は、 errno
、 _doserrno
、 _sys_errlist
、および _sys_nerr
が EINVAL
に設定され、関数が返されます。
要件
ルーチンによって返される値 | 必須ヘッダー |
---|---|
_CrtDoForAllClientObjects |
<crtdbg.h>、<errno.h> |
互換性の詳細については、「 Compatibility」を参照してください。
ライブラリ: ユニバーサル C ランタイム ライブラリのデバッグ バージョンのみ。