发生错误后执行的代码

时间:2015-06-18 16:34:24

标签: c++ crash runtime-error

我用g ++版本4.8.2编译并运行以下C ++代码:

DatePicker

程序将在第vector<int> ivec{0,1,2}; int& iref = ivec[1]; for (int i=3;i<100;++i) ivec.push_back(i); iref = 10; cerr<<"After Error"<<'\n'; return 0; 行按预期崩溃,因为引用无效。但字符串iref = 10;被打印出来。为什么呢?

这个问题的答案对我很重要,因为大部分时间我使用"After Error"cout来查找导致运行时错误的行。

1 个答案:

答案 0 :(得分:6)

您的程序有未定义的行为,因为push_back使引用iref无效。 C ++标准没有为程序的执行指定任何行为。问题&#34;为什么&#34;无法在C ++的上下文中回答。