_free_dbg
ヒープ内のメモリ ブロックを解放します (デバッグ バージョンのみ)。
構文
void _free_dbg(
void *userData,
int blockType
);
パラメーター
userData
解放される、割り当てられていたメモリ ブロックへのポインター。
blockType
解放される、割り当てられていたメモリ ブロックの型。_CLIENT_BLOCK
、_NORMAL_BLOCK
、または _IGNORE_BLOCK
。
解説
この _free_dbg
関数は、関数の free
デバッグ バージョンです。 定義されていない場合 _DEBUG
、各呼び出しは次の呼び _free_dbg
出し free
に減らされます。 free
と _free_dbg
は、どちらもベース ヒープのメモリ ブロックを解放しますが、_free_dbg
は 2 つのデバッグ機能を提供します。解放されたブロックをヒープのリンク リストに保持してメモリ不足の状況をシミュレートする機能と、特定の種類の割り当てを解放するためのブロック型パラメーターです。
_free_dbg
は、解放操作を実行する前に、指定されたすべてのファイルおよびブロックの位置の有効性チェックを実行します。 アプリケーションはこの情報を提供する必要はありません。 メモリ ブロックが解放されると、デバッグ ヒープ マネージャーは、ユーザー部分の両側のバッファーの整合性を自動的にチェックします。 上書きが検出されると、エラー レポートが発行されます。 フラグの_CRTDBG_DELAY_FREE_MEM_DF
_crtDbgFlag
ビット フィールドが設定されている場合、解放されたブロックには0xDD値が入力され、ブロックの種類が割り当てられ_FREE_BLOCK
、ヒープのリンクされたメモリ ブロックの一覧に保持されます。
メモリの解放でエラーが発生すると、エラーの性質に関するオペレーティング システムからの情報が errno
に設定されます。 詳細については、「errno
」、「_doserrno
」、「_sys_errlist
」、および「_sys_nerr
」を参照してください。
基本ヒープのデバッグ バージョンでのメモリ ブロックの割り当て、初期化、および管理方法については、CRT デバッグ ヒープの詳細を参照してください。 割り当てブロックの種類とその使用方法については、「デバッグ ヒープ上のブロックの種類」を参照してください。 標準ヒープ関数の呼び出しとデバッグ バージョンの違いについては、ヒープ割り当て関数のデバッグ バージョンを参照してください。
必要条件
ルーチンによって返される値 | 必須ヘッダー |
---|---|
_free_dbg |
<crtdbg.h> |
互換性の詳細については、「 Compatibility」を参照してください。
例
_free_dbg
の使用方法のサンプルについては、「crt_dbg2
」を参照してください。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示