次の方法で共有


_CrtCheckMemory

デバッグ ヒープで割り当てられたメモリ ブロックの整合性を確認します (デバッグ バージョンのみ)。

int _CrtCheckMemory( void );

戻り値

成功すると、_CrtCheckMemory は TRUE を返します。それ以外の場合は FALSE を返します。

解説

_CrtCheckMemory 関数は、基になるベース ヒープを確認し、各メモリ ブロックを調べることにより、デバッグ ヒープ マネージャーによって割り当てられたメモリを検証します。 基になるベース ヒープ、デバッグ ヘッダー情報、または上書きバッファーでエラーやメモリの不整合が検出された場合、_CrtCheckMemory はエラー状況を説明する情報を含むデバッグ レポートを生成します。 _DEBUG が未定義の場合、_CrtCheckMemory の呼び出しはプリプロセスで削除されます。

_CrtCheckMemory の動作は、_CrtSetDbgFlag 関数を使用して _crtDbgFlag フラグのビット フィールドを設定することによって制御できます。 _CRTDBG_CHECK_ALWAYS_DF ビット フィールドをオンに切り替えると、メモリ割り当て操作が要求されるたびに _CrtCheckMemory が呼び出されるようになります。 この方法は実行速度を低下させますが、エラーをすばやく見つけるために役立ちます。 _CRTDBG_ALLOC_MEM_DF ビット フィールドをオフに切り替えると、_CrtCheckMemory がヒープを確認せずに直ちに TRUE を返すようになります。

この関数は TRUE または FALSE を返すため、_ASSERT 系マクロに渡すことによって、デバッグ用の単純なエラー処理機構を作成できます。 次の例は、ヒープの破損が検出された場合に、アサーション エラーを発生させます。

_ASSERTE( _CrtCheckMemory( ) );

_CrtCheckMemory を他のデバッグ関数と共に使用する方法の詳細については、「ヒープの状態をレポートする関数」を参照してください。 メモリ管理とデバッグ ヒープの概要については、「CRT デバッグ ヒープ」を参照してください。

必要条件

ルーチン

必須ヘッダー

_CrtCheckMemory

<crtdbg.h>

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

ライブラリ

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

使用例

_CrtCheckMemory の使用例については、「crt_dbg1」を参照してください。

同等の .NET Framework 関数

System::Diagnostics::PerformanceCounter

参照

関連項目

デバッグ ルーチン

_crtDbgFlag

_CrtSetDbgFlag