-
在本文中,我們需要知道程式是否有記憶體洩漏,然後找到哪一行有記憶體洩漏,以便修復。 最簡單的方法,當然是借助專業的檢測工具,比如BoundsCheck工具,它非常強大,相信做C++開發的人離不開它。 另外,不需要使用任何工具,而是自己實現記憶體洩漏的監控,分為以下兩種情況:
一。 如果使用 MFC 程式,則很容易檢測 MFC 中的記憶體洩漏。 預設情況下,有乙個記憶體洩漏檢測功能。
我們使用 VS2005 生成了乙個 MFC 對話方塊程式,發現它可以自動檢測記憶體洩漏。 我們不需要做任何特別的事情。 如果你仔細觀察,你可以看到在每個CPP檔案中,都有以下**::
#ifdef _debug
define new debug new endifdebug new 這個巨集在檔案中定義,它幫助我們定位記憶體洩漏。 如果不刪除包含上述內容的 cpp 檔案中分配的記憶體,則在停止程式時,VisualStudio 輸出視窗將顯示以下訊息:檢測到記憶體洩漏!
dumping objects ->
d:\code\mfctest\ :normal block at 0x003af170, 4 bytes long.
data: <00 00 00 00
-
使用 VLD:Visual C++ 記憶體洩漏檢測 — VLD 工具。
-
name=(char *)malloc(sizeof(char));是分配乙個 char 資料型別大小的記憶體空間,即 name[0];
C 不對陣列進行邊界檢測,可以輸出 name[100],但內容未知。
name=(char *)malloc(2*sizeof(char));將分配 2 個字元大小的記憶體空間,即 name[0]、name[1]。
在陣列邊界之外操作記憶體空間是不安全的,資料毫無意義。
是的。 (char *)malloc(sizeof(char)) 不是變數名的位址,變數名的記憶體空間是 malloc 分配的記憶體位址,不同的是,即 name 指向乙個位址(malloc 分配的位址,變數名本身是另乙個位址)。
煎雞蛋如果你想把雞蛋煎成圓形。 然後我們需要有模具。 首先,將鍋中的油煮沸後,將模具放入其中,使煎雞蛋呈圓形。
使用 Windows
隨著 10 的發布,有許多系統愛好者渴望想象安裝它的體驗。 下面將教您如何使用通用 PE 工具箱安裝 Windows >>>More