簡述幾種內存泄漏的預防機制
用智能指針代替普通指針,由于智能指針自帶引用計數功能,能夠記錄動態分配空間的引用數量,在引用計數為零時,自動調用析構函數釋放空間。
借助一些內存泄漏檢測工具,例如Valgrind、Memcheck。
養成良好的編程習慣:保證malloc和free、new和delete成對出現。
內存越界
內存越界也指內存訪問越界,是指訪問了所申請空間之外的內存。如果對越界的內存進行讀操作,讀取的結果具有隨機性且無法預知;如果對越界的內存進行寫操作,寫入的結果可能破壞其他數據。
內存越界不屬于語法錯誤,無法通過編譯器發現,甚至程序運行初期也不會發生錯誤,直到某種特定情況下才會由于內存越界導致程序崩潰。
內損越界無法從根本上避免,只能預防。要求編程人員對操作的內存空間要有一個明確的認識。