Share via


_aligned_free_dbg

更新 : 2007 年 11 月

_aligned_malloc または _aligned_offset_malloc で割り当てたメモリ ブロックを解放します (デバッグ時のみ)。

void _aligned_free_dbg(
   void *memblock
);

パラメータ

  • memblock
    _aligned_malloc 関数または _aligned_offset_malloc 関数に返されたメモリ ブロックへのポインタ。

解説

_aligned_free_dbg 関数は、_aligned_free 関数のデバッグ バージョンです。_DEBUG が定義されていないと、_aligned_free_dbg 関数への呼び出しは aligned_free 関数への呼び出しに変わります。_aligned_free と _aligned_free_dbg は、どちらもベース ヒープ内のメモリ ブロックを解放しますが、_aligned_free_dbg にはデバッグ機能があります。これは、解放されたブロックをヒープのリンク リストに保持してメモリ不足をシミュレートする機能です。

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

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

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

必要条件

ルーチン

必須ヘッダー

_aligned_free_dbg

<crtdbg.h>

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

.NET Framework の相当するアイテム

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

参照

参照

デバッグ ルーチン