Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
3年前关闭。
当我使用Visual Studio 2015进行编码时,我无法在“调试模式”下调试和运行程序,编译时会显示“调试断言失败,迭代器+偏移量超出范围”,但是,我的程序可以在发布模式下成功运行,也可以在其他轻量级ide(code :: blocks)中运行,这是什么原因?
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
3年前关闭。
当我使用Visual Studio 2015进行编码时,我无法在“调试模式”下调试和运行程序,编译时会显示“调试断言失败,迭代器+偏移量超出范围”,但是,我的程序可以在发布模式下成功运行,也可以在其他轻量级ide(code :: blocks)中运行,这是什么原因?
最佳答案
您的代码的行为是不确定的。
显然,您正在尝试为超出范围的数组(或相关容器)建立索引。 C ++通常不会对此进行任何运行时检查;确保这不会发生是程序员的工作。
您的调试版本有助于吸引您的注意。
未定义的行为在发行版本中以不同的方式体现出来。
修正断言!
关于c++ - 使用Visual Studio,为什么C++程序无法在 Debug模式下运行,而在 Release模式下成功运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35790887/