_CrtIsMemoryBlock

指定されたメモリ ブロックがローカル ヒープ内にあり、有効なデバッグ ヒープ ブロック型識別子が設定されていることを検査します (デバッグ バージョンだけ)。

構文

int _CrtIsMemoryBlock(
   const void *userData,
   unsigned int size,
   long *requestNumber,
   char **filename,
   int *lineNumber
);

パラメーター

userData
検査するメモリ ブロックの先頭へのポインター。

size
指定されたブロックのサイズ (バイト)。

requestNumber
ブロックの割り当て番号へのポインター、または NULL

filename
ブロックを要求したソース ファイル名へのポインター、または NULL

lineNumber
ソース ファイル内の行番号へのポインター、または NULL

戻り値

_CrtIsMemoryBlock は、指定されたメモリ ブロックがローカル ヒープにあり、有効なデバッグ ヒープ ブロック型識別子が設定されていれば、TRUE を返します。それ以外の場合は、FALSE を返します。

解説

_CrtIsMemoryBlock 関数は、指定されたメモリ ブロックがアプリケーションのローカル ヒープ内にあり、有効なブロック型識別子が設定されていることを検査します。 また、この関数を使用すると、オブジェクト割り当て順序番号と、メモリ ブロックの割り当て要求を行ったソース ファイル名および行番号を取得できます。 またはパラメーターで渡された値以外NULLの値を指定すると、ローカル ヒープ内lineNumberrequestNumberfilenameのブロックが見つかると、パラメーターがメモリ ブロックのデバッグ ヘッダー内の値に設定されます。_CrtIsMemoryBlock _DEBUG が定義されていない場合、_CrtIsMemoryBlock の呼び出しは前処理で削除されます。

失敗した場合 _CrtIsMemoryBlock は、返され、 FALSE出力パラメーターは既定値 requestNumber に初期化され lineNumber 、0 に設定され filenameNULL.

この関数は返 TRUE すか、マクロ FALSEのいずれかに _ASSERT 渡して、基本的なデバッグ エラー処理メカニズムを作成できます。 次の例では、指定されたアドレスがローカル ヒープ内にない場合にアサーションの失敗が発生します。

_ASSERTE( _CrtIsMemoryBlock( userData, size, &requestNumber,
          &filename, &linenumber ) );

他のデバッグ関数やマクロと共に使用する方法_CrtIsMemoryBlockの詳細については、レポート用のマクロを参照してください。 基本ヒープのデバッグ バージョンでのメモリ ブロックの割り当て、初期化、および管理方法については、CRT デバッグ ヒープの詳細を参照してください

必要条件

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

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

ライブラリ

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

記事の例を _CrtIsValidHeapPointer 参照してください。

関連項目

デバッグ ルーチン