为什么在 C++11 之后,std::basic_string 的 past-the-end 迭代器的取消引用仍然是 UB?
作者:998244353 提问时间:10/10/2023
众所周知,C++11 添加了一个 null 终止符(不计入大多数成员函数)。但是当我阅读 cpp ref 时,我发现 UB 的取消引用(这一段与 std::vector 的段落几乎相同)。为什么会这样...
行为 问答列表
作者:998244353 提问时间:10/10/2023
众所周知,C++11 添加了一个 null 终止符(不计入大多数成员函数)。但是当我阅读 cpp ref 时,我发现 UB 的取消引用(这一段与 std::vector 的段落几乎相同)。为什么会这样...
作者:user16217248 提问时间:9/28/2023
在 C 中,如果我尝试通过未对齐的指针访问类型,可能会发生不好的事情: int x[2]; // Assuming CHAR_BIT == 8 && sizeof(int) == 4 *(int *...
作者: 提问时间:11/14/2010
什么是“序列点”? 未定义行为和序列点之间有什么关系? 我经常使用有趣而复杂的表达方式,比如,让自己感觉更好。我为什么要停止使用它们?a[++i] = i; 如果您已阅读本文,请务必访问后续问题...
作者:Joshua 提问时间:9/19/2023
如果 C 程序具有未定义的行为,则任何事情都可能发生。因此,编译器可以假定任何给定的程序都不包含 UB。因此,假设我们的程序包含以下内容: x += 5; /* Do something else ...
作者:mishar 提问时间:9/5/2023
这个问题在这里已经有答案了: C++17引入的评估顺序保证是什么? (3 个答案) 3个月前关闭。 我知道这是那些“未定义的行为”问题之一,但是当前关于该主题的cpreference页面(截至C++...
作者:Zolomon 提问时间:3/8/2010
什么是 C 和 C++ 中的未定义行为 (UB)?未指定的行为和实现定义的行为呢?它们之间有什么区别?...
作者:wimalopaan 提问时间:8/23/2023
以下代码 int main() { while(true); } 是 C++ 中的 UB。但这是 MCU 编程中的常见做法:存在一个无休止的循环,所有工作都在 ISR(中断服务例程)中完成。m...
作者:JosePepeDev 提问时间:7/26/2023
我正在学习 BDD,即行为驱动开发,虽然我抓住了拥有系统行为示例的“想法”,我们可以执行这些示例并通过这些示例来开发它,但我被困在如何正确编写场景(使用 gherkin)中,旨在简化自然语言到步骤之间...
作者:just Impartial 提问时间:7/5/2023
我最近读了一本编程书。它说如果我们在初始化变量时没有给出值,如下例所示: int i; int i {0}; ...那么它有时可能会导致运行时错误。但是,我不确定这是否正确。未初始化的变量会设置...
作者:Lightness Races in Orbit 提问时间:8/5/2015
我用我的代码发布了一个问题,其唯一的指令如下:#include #include <bits/stdc++.h> 我的老师告诉我这样做,但在评论部分,我被告知我不应该这样做。 为什么?...