BOOL AfxCheckMemory ( );
戻り値
ないメモリ エラーそうでなければ 0。
解説
この関数は空きメモリ プールを検証し、必要に応じてエラー メッセージが出力されます。関数がメモリの破損を検出しない場合は、それは、何も印刷されません。
新しいがなく、これらの Windows のGlobalAlloc関数malloc関数などの基になるメモリ アロケーターへの直接の呼び出しによって割り当てによって割り当てられたものを含め、現在はヒープに割り当てられたすべてのメモリ ブロックがチェックされます。任意のブロックが破損していることが検出される場合は、メッセージ、デバッガーに出力です。
場合は、行を含める
# define 新しい DEBUG_NEW
プログラムのモジュールでは、[ AfxCheckMemoryを呼び出すファイル名と行番号にメモリが割り当てられた表示します。
注特価;モジュールが含まれているシリアル化可能なクラスの 1 つ以上実装する必要がある場合、 #define の行の最後のIMPLEMENT_SERIALマクロ呼び出し後(&N)。
この関数は MFC のデバッグ バージョンでだけ動作します。
例
//AfxCheckMemory たとえばケージ ※ pcage = 新しいケージ (21); 特価;・ ・ ケージは、CObject から派生しました。年齢 ※ ページ新しい年齢 (22); =//年齢 CObject から派生できません。*(((char*) pcage) - 1) = 99;・ ・上記ガード バイトが破損*(((char*) ページの場合) - 1) = 99;・ ・上記ガード バイトが破損AfxCheckMemory()(&N)
プログラムの結果は次のとおりです。:
メモリ チェック エラー $0067495F で $63 =、$FD をする必要があります損傷: 非オブジェクト ブロックの前に $00674960非オブジェクト ファイル test02.cxx(48) での割り当て非オブジェクト ドルで 00674960 にある 2 バイト長です。メモリ チェック エラー $00674905 で $63 =、$FD をする必要があります損傷: オブジェクト ブロックの前に $00674906ファイル test02.cxx(47) で割り当てられたオブジェクト$00674906 に位置してオブジェクト 6 バイト長です。