由於有些日子,我一直在Visual Studio 2008中遇到與我的C++軟件相關的問題。 如果我將Visual Studio設置設置爲「發佈Win32」模式,它工作正常。C++ Visual Studio 2008,delete()操作崩潰程序
但是,如果我將它設置爲「調試Win32」,它使用刪除時有崩潰問題。編譯是正常的,但是,運行時,軟件會在第一次「刪除」時遇到崩潰。
考慮這個snaphsot:
正如你可以看到,當軟件到達 「刪除臨時」;命令執行,它崩潰顯示消息:
調試斷言失敗! 計劃... 表達_BLOCK_TYPE_IS_VALID(pHead-> nBlockHouse)
問題是什麼? 如何解決它?
爲什麼在「發佈」模式下它沒有任何錯誤?
Thanx
你可以發佈代碼而不是屏幕截圖嗎? – hmjd
在發行版中,默認情況下編譯器不會執行斷言。這就是編譯沒有錯誤的原因 – v01d
'temp'是'NULL'。用'NULL'做任何事情都是不好的,可以假設的visual studio在調試模式下有某種斷言,它在發佈模式下被禁用。那麼你是不幸的,它不會崩潰,似乎工作。 – BoBTFish