C++ 使用visual studio,为什么使用C++;在发布模式下成功运行时,程序无法在调试模式下运行

C++ 使用visual studio,为什么使用C++;在发布模式下成功运行时,程序无法在调试模式下运行,c++,visual-studio,C++,Visual Studio,当我使用Visual Studio 2015进行编码时,我无法在“调试模式”下调试和运行我的程序,编译器会说“调试断言失败,迭代器+偏移量超出范围”,但是,我的程序可以在发布模式下成功运行,也可以在其他轻量级ide(代码::块)中运行,原因是什么?代码的行为未定义 显然,您正在尝试为超出其边界的数组(或相关容器)编制索引。C++通常不为其进行任何运行时检查;程序员的工作就是确保这种情况不会发生 您的调试构建非常有助于吸引您的注意力 未定义的行为在发布版本中以不同的方式表现出来 修正断言 您很可能

当我使用Visual Studio 2015进行编码时,我无法在“调试模式”下调试和运行我的程序,编译器会说“调试断言失败,迭代器+偏移量超出范围”,但是,我的程序可以在发布模式下成功运行,也可以在其他轻量级ide(代码::块)中运行,原因是什么?

代码的行为未定义

显然,您正在尝试为超出其边界的数组(或相关容器)编制索引。C++通常不为其进行任何运行时检查;程序员的工作就是确保这种情况不会发生

您的调试构建非常有助于吸引您的注意力

未定义的行为在发布版本中以不同的方式表现出来


修正断言

您很可能正在尝试超越迭代器上的end()。在发布模式下不会出现错误,因为检查此问题的assert语句在发布模式下被禁用。

“成功运行”!=“没有虫子”。