gpt4 book ai didi

c++ - 发生错误后执行的代码

转载 作者:搜寻专家 更新时间:2023-10-31 00:12:15 25 4
gpt4 key购买 nike

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

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"。为什么?

这个问题的答案对我来说很重要,因为大多数时候我使用 coutcerr 来查找导致运行时错误的行。

最佳答案

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

关于c++ - 发生错误后执行的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30921009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com