次の方法で共有


_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 は、メモリを解放する前に、指定されたすべてのファイルとブロック位置の有効性を確認します。 アプリケーションではこの情報は提供されません。 メモリ ブロックが解放されると、デバッグ ヒープ マネージャーは自動的にユーザー領域の両端のバッファーの整合性を確認し、上書きされている場合はエラー レポートを発行します。 _crtDbgFlag フラグの _CRTDBG_DELAY_FREE_MEM_DF ビット フィールドが設定されている場合、解放されたブロックは値 0xDD で初期化され、_FREE_BLOCK プロック型が割り当てられた後、ヒープのメモリ ブロック リンク リストに保持されます。

メモリの解放でエラーが発生した場合errno、障害の情報をオペレーティング システムから、自然が設定されます。 詳細については、「errno、_doserrno、_sys_errlist、および _sys_nerr」を参照してください。

デバッグ バージョンのベース ヒープに対するメモリ ブロックの割り当て、初期化、管理方法の詳細については、「メモリ管理とデバッグ ヒープ」を参照してください。 割り当てブロック型とその使用方法については、「デバッグ ヒープ上のメモリ ブロックの型」を参照してください。 標準で呼び出すヒープ関数と、アプリケーションのデバッグ ビルドで呼び出すデバッグ バージョンのヒープ関数との違いの詳細については、「デバッグ バージョンのヒープ割り当て関数」を参照してください。

必要条件

ルーチン

必須ヘッダー

_free_dbg

<crtdbg.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

使用例

_free_dbg の使用例については、「crt_dbg2」を参照してください。

同等の .NET Framework 関数

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

参照

参照

デバッグ ルーチン

_malloc_dbg