_realloc_dbg
ブロック (デバッグ バージョンだけ) を移動することやサイズを変更することによってヒープ メモリの指定されたブロックを再割り当てします。
void *_realloc_dbg(
void *userData,
size_t newSize,
int blockType,
const char *filename,
int linenumber
);
パラメーター
userData
既に割り当てられたメモリ ブロックへのポインター。newSize
再割り当て済みのブロック (バイト) の要求サイズ。blockType
再割り当てされたブロックで要求された型 : _CLIENT_BLOCK または _NORMAL_BLOCK。filename
要求されたソース ファイル名へのポインター realloc 操作または NULL。linenumber
realloc 操作が要求または空白のソース ファイルの行番号。
filename と linenumber のパラメーターは _realloc_dbg が明示的に呼び出されたときまたは _CRTDBG_MAP_ALLOC のプリプロセッサ定数が定義されたのみ使用できます。
戻り値
正常に終了した場合再割り当て済みのメモリ ブロックのユーザー領域へのこの関数の呼び出しは新しいハンドラー関数ポインターは null を返します。これらの動作の詳細については次の " 解説 " を参照してください。詳細については新しいハンドラー関数がどのように使用されるかについてはrealloc の関数を参照してください。
解説
_realloc_dbg は realloc の関数のデバッグ バージョンです。_DEBUG を定義しない場合_realloc_dbg を呼び出すたびにrealloc の呼び出しに減少します。realloc と _realloc_dbg はベース ヒープ メモリ ブロックを再割り当てしますが_realloc_dbg は一部のデバッグ機能が格納されます : 調べ割り当て要求の原点を確認するために特定の割り当て型を追跡するブロック型パラメーターと filename と linenumber 情報のテスト対象ブロックのユーザー領域の前後に確保されるバッファー。
_realloc_dbg は要求された newSize よりもより多くのスペースを指定されたメモリ ブロックを再割り当てします。newSize割り当てられたメモリ ブロックのサイズは元により大きいか小さいかである可能性があります。デバッグ ヒープ マネージャーによって追加空間がデバッグ メモリ ブロックをリンクするとアプリケーションのデバッグのヘッダー情報とバッファーをオーバーライドするために使用されます。割り当ては元のメモリ ブロックをヒープ内の別の場所に移動するとメモリ ブロックのサイズを変更することになる場合があります。メモリ ブロックが移動された場合は元のブロックの内容が上書きされます。
_realloc_dbg は ENOMEM にメモリ割り当てが失敗した場合または必要なメモリ量 (前記のオーバーヘッドを含む) _HEAP_MAXREQ を超えた場合 errno を設定します。この変更およびそのほかのエラー コードについてはerrno、_doserrno、_sys_errlist、および _sys_nerr を参照してください。
デバッグ バージョンのベース ヒープに対するメモリ ブロックの割り当て、初期化、管理方法の詳細については、「メモリ管理とデバッグ ヒープ」を参照してください。割り当てブロックの型についてはそれらがどのように使用されるかについてはデバッグ ヒープ ブロックの型 を参照してください。アプリケーションのデバッグ ビルドの標準とデバッグ バージョンのヒープ関数呼び出しの違いについてはデバッグ バージョンを使用して基本バージョン を参照してください。
必要条件
ルーチン |
必須ヘッダー |
---|---|
_realloc_dbg |
<crtdbg.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
ライブラリ
C ランタイム ライブラリのデバッグ バージョンのみ。
使用例
_msize_dbg " " の例を参照してください。
同等の .NET Framework 関数
該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。