回覆列表
  • 1 # 使用者9147460208505

    (

    這裡

    ,和

    這裡

    )

    VS

    本身即具有記憶體洩露檢測機制,只需做如下設定,在

    debug

    模式下以

    F5

    執行:

    方法一:

    //

    在入口函式

    cpp

    中新增以下定義和標頭檔案

    #define CRTDBG_MAP_ALLOC

    #include

    #include

    在入口函式中包含

    _CrtDumpMemoryLeaks();

    即可檢測到記憶體洩露

    以如下測試函式為例:

    int main()

    {

    char* pChars = new char[10];

    _CrtDumpMemoryLeaks();

    return 0;

    }

    F5

    執行輸出視窗會得到:

    Detected memory leaks!

    Dumping objects ->

    {126} normal block at 0x002A4630, 10 bytes long.

    Data:

    > CD CD CD CD CD CD CD CD CD CD

    Object dump complete.

    注意:

    1.

    VS2010

    下測試的時候,發現

    _CrtDumpMemoryLeaks();

    這句必須放在

    函式結束處

    ,放

    在主函式入口處輸出視窗不會輸出記憶體洩露資訊

    2.{}

    中的數字指明這塊記憶體是程式中總計第幾個被申請的,這種方法沒有行號和其他資訊輸

    出。我們可以定義:

    #ifdef _DEBUG

    #define new

    new(_NORMAL_BLOCK, __FILE__, __LINE__)

    #endif

    輸出:

    Detected memory leaks!

    Dumping objects -

  • 中秋節和大豐收的關聯?
  • 固定資產按經濟用途可分為什麼?