次の方法で共有


_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 ビット フィールドが ON になっていない場合、_CrtDoForAllClientObjects はすぐに処理を戻します。 _DEBUG が未定義の場合、_CrtDoForAllClientObjects の呼び出しはプリプロセスで削除されます。

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

pfn が NULL の場合は、「パラメーターの検証」に説明されているように、無効なパラメーター ハンドラーが呼び出されます。 実行の継続が許可された場合、この関数は errno、_doserrno、_sys_errlist、および _sys_nerr を EINVAL に設定して処理を戻します。

必要条件

ルーチン

必須ヘッダー

_CrtDoForAllClientObjects

<crtdbg.h>、<errno.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

**ライブラリ:**デバッグ バージョンのC ランタイム ライブラリのみ。

使用例

dfacobjs サンプル : C ランタイム _CrtDoForAllClientObjects 関数」を参照してください。

同等の .NET Framework 関数

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

参照

参照

デバッグ ルーチン

_CrtSetDbgFlag

_CrtReportBlockType

概念

ヒープの状態をレポートする関数