gpt4 book ai didi

c++ - Mac 上 C++ 中 for 循环的奇怪行为

转载 作者:太空狗 更新时间:2023-10-29 23:43:36 25 4
gpt4 key购买 nike

我有以下功能:

std::vector<std::vector<Surfel>> testAddingSift(
const Groundtruth &groundtruth,
SurfelHelper &surfelHelper) {
for (int k = 0; k < 10; k++) {
std::cout << "hej" << k <<std::endl;
}
}

当我忘记归还 vector<vector<Surfel>> 时我有一个无限循环:

 hej1025849
hej1025850
hej1025851
hej1025852

当我返回 vector<vector<Surfel>> 时我得到:

hej0
hej1
hej2
hej3
hej4
hej5
hej6
hej7
hej8
hej9

当然忘记返回 vector 是错误的,但为什么会影响for循环?

我正在使用带有 Sierra 和 CLion 的 MacBook Pro,我认为它是 clang。

最佳答案

无法从具有非 void 返回类型的函数返回是 undefined behavior .根据定义,这样做几乎不可能对由此产生的行为进行推理。这会影响预期会遇到未定义行为之前的代码行为。

关于c++ - Mac 上 C++ 中 for 循环的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46567298/

25 4 0
文章推荐: C++ : discards qualifier even if the member variables are mutable
文章推荐: c# - 如何从 ASP.NET Core 中的 ActionFilterAttribute 访问 AppSettings
文章推荐: c# - 将 CookComputing XMLRpcStruct (IEnumerable) 转换为实际的 C# 类