_CrtCheckMemory
デバッグ ヒープ (デバッグ バージョンだけ) で割り当てられたメモリ ブロックの整合性を検証します。
int _CrtCheckMemory( void );
戻り値
成功した場合は TRUE を返します _CrtCheckMemory ; それ以外の場合は false が返されます。
解説
_CrtCheckMemory の関数はデバッグ ヒープ マネージャーによって基になるベース ヒープを確認し各メモリ ブロックを調べることによって割り当てられたメモリを検証します。エラーやメモリの一貫性が基になるベースデバッグ ヒープのヘッダー情報または override バッファーに検出された場合**_CrtCheckMemory** はエラー状態に関する情報を持つデバッグ レポートが生成されます。_DEBUG が未定義の場合、_CrtCheckMemory の呼び出しはプリプロセスで削除されます。
_CrtCheckMemory の動作は _CrtSetDbgFlag の関数を使用して _crtDbgFlag フラグのビット フィールドを設定することによって制御できます。メモリ割り当ての操作が要求されるたびに呼び出される _CrtCheckMemory の結果の _CRTDBG_CHECK_ALWAYS_DF のビット フィールドを切り替えます。このメソッドは実装が低下しますがエラーをすぐに見つけるために役立ちます。ヒープを確認するとTrue を返す場合に _CRTDBG_ALLOC_MEM_DF のビット フィールドを呼び出す _CrtCheckMemory オフを切り替えます。
この単純なデバッグ エラー処理機構を作成するには関数の戻り値 True または False では_ASSERT マクロの 1 に渡すことができます。ヒープ破損がで検出される次の例ではアサーション エラーが発生します :
_ASSERTE( _CrtCheckMemory( ) );
詳細については**_CrtCheckMemory** が他のデバッグ機能がどのように連携できるか ヒープ状態レポート関数 を参照してください。メモリ管理とデバッグ ヒープの概要についてはメモリ管理とデバッグ ヒープ を参照してください。
必要条件
ルーチン |
必須ヘッダー |
---|---|
_CrtCheckMemory |
<crtdbg.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
ライブラリ
C ランタイム ライブラリのデバッグ バージョンのみ。
使用例
_CrtCheckMemory を使用する方法の例については crt_dbg1 を参照してください。
同等の .NET Framework 関数
System:: Diagnostics:: PerformanceCounter