_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
の値を指定すると、ローカル ヒープ内lineNumber
requestNumber
filename
のブロックが見つかると、パラメーターがメモリ ブロックのデバッグ ヘッダー内の値に設定されます。_CrtIsMemoryBlock
_DEBUG
が定義されていない場合、_CrtIsMemoryBlock
の呼び出しは前処理で削除されます。
失敗した場合 _CrtIsMemoryBlock
は、返され、 FALSE
出力パラメーターは既定値 requestNumber
に初期化され lineNumber
、0 に設定され filename
、 NULL
.
この関数は返 TRUE
すか、マクロ FALSE
のいずれかに _ASSERT
渡して、基本的なデバッグ エラー処理メカニズムを作成できます。 次の例では、指定されたアドレスがローカル ヒープ内にない場合にアサーションの失敗が発生します。
_ASSERTE( _CrtIsMemoryBlock( userData, size, &requestNumber,
&filename, &linenumber ) );
他のデバッグ関数やマクロと共に使用する方法_CrtIsMemoryBlock
の詳細については、レポート用のマクロを参照してください。 基本ヒープのデバッグ バージョンでのメモリ ブロックの割り当て、初期化、および管理方法については、CRT デバッグ ヒープの詳細を参照してください。
必要条件
ルーチンによって返される値 | 必須ヘッダー |
---|---|
_CrtIsMemoryBlock |
<crtdbg.h> |
互換性の詳細については、「 Compatibility」を参照してください。
ライブラリ
C ランタイム ライブラリのデバッグ バージョンのみ。
例
記事の例を _CrtIsValidHeapPointer
参照してください。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示