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