2016-03-04 62 views
0

當我使用Visual Studio 2015編寫代碼時,我無法在「調試模式」下調試並運行我的程序,編譯時顯示「調試斷言失敗,迭代器+偏移超出範圍「,但是,我的程序可以在發佈模式下成功運行,也可以在其他輕量級ide(code :: blocks)中運行,原因是什麼?使用visual studio,爲什麼C++程序無法在調試模式下運行,而在發佈模式下運行成功

+5

「運行成功」!=「沒有錯誤」。 –

回答

5

您的代碼的行爲是undefined

你顯然正在嘗試索引超出範圍的數組(或相關容器)。 C++通常不會進行任何運行時檢查;程序員的工作是確保不會發生。

您的調試版本可以幫助您吸引注意力。

未定義的行爲在發佈版本中以不同的方式表現出來。

修復斷言!

2

您試圖超越end()上的迭代器最有可能。您不會在發佈模式下發生錯誤,因爲在發佈模式下禁用檢查此問題的assert語句。