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