當前位置:妙知谷 >

遊戲數碼 >電腦 >

C++Debug Assertion Failed!到底出錯在哪裏?

C++Debug Assertion Failed!到底出錯在哪裏?

在執行程序時,時常遇到一些Debug Assertion Failed!的錯誤警告對話框,對於初學者不知道問題出在哪裏,我在這裏以一個簡單的例子演示給大家。

C++Debug Assertion Failed!到底出錯在哪裏?

操作方法

(01)下面這幅圖是我的程序源代碼截圖,這是一個很簡單的小程序,不妨自己閲讀下能否找到錯誤。

C++Debug Assertion Failed!到底出錯在哪裏? 第2張

(02)下圖是在執行程序時彈出的錯誤警告對話框,類似的情況很多,我在調試dll插件的時候也時常碰到,後來發現大多是指針引起的錯誤。

C++Debug Assertion Failed!到底出錯在哪裏? 第3張

(03)下圖熒光筆標記的地方,是Distance類析構函數,這裏使用了delete,其實是畫蛇添足的,因為pDist指針是靜態分配的內存,當程序運行完後,其內存自動釋放,此時使用delete就是刪除一個不存在的指針,從而報錯,而實際上delete是與new搭配使用的。

C++Debug Assertion Failed!到底出錯在哪裏? 第4張

(04)總結來説這種錯誤存在兩種情況,其一就是野指針。

C++Debug Assertion Failed!到底出錯在哪裏? 第5張

(05)另一種情況就是內存泄露。

C++Debug Assertion Failed!到底出錯在哪裏? 第6張

(06)在調試的時候一定是在自己編寫的函數上找錯,不要一隻跟着調試順序在庫函數裏找錯。

特別提示

單步調試找到錯誤,祝好運。

  • 文章版權屬於文章作者所有,轉載請註明 https://miaozhigu.com/sm/diannao/2e9v2v.html