C++debug调试出现heap corruption detected: after normal block 可能的原因
生活随笔
收集整理的這篇文章主要介紹了
C++debug调试出现heap corruption detected: after normal block 可能的原因
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近在刷C++題目的代碼,在刷題過程中出現了
heap corruption detected: after normal block這種錯誤出現的概率應該還是蠻高的:
這是典型的內存溢出錯誤,常在delete處發生,而且一般在debug版本中出現,release版本中可能并不報錯。
這種錯誤的出現一般是在程序中new出一段內存后,在使用的過程中無形的增加了new出來的內存長度,在delete的時候沒有注意內存長度已經發生了變化,所以會出現如上的錯誤。比如:
這里指針p,new出來的長度值只有5,而賦值的時候卻是6的長度,所以在delete的時候會出現內存的泄漏。這種錯誤一般會出現在debug版本中,release版本可能并不會出現,但是隱患還是存在的,所以我們在出現這種錯誤的時候一定要仔細檢查代碼對于new出來的指針。
總結
以上是生活随笔為你收集整理的C++debug调试出现heap corruption detected: after normal block 可能的原因的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python-爬虫(1)
- 下一篇: 华为机试-取近似值