问题标签 [undefined-behavior]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - `x--> 0 && array[x]` 在 C++ 中是明确定义的行为吗?
x
当我在左侧后增量时,我可以在布尔表达式的两侧使用它吗?
有问题的行是:
这是通过标准定义的吗?array[x] 将使用新值x
还是旧值?
c++ - “覆盖”时出现Stringstream write()问题
目前,我有一个名为Data
. 我正在使用以下方法寻找字符串流的开头:
然后,我尝试将 2 个整数写入字符串流的前 8 个字节(以前,前 8 个字节设置为 0)
使用 Visual C++ 调试器并设置断点时,我可以看到dataLength
等于 12 和dataFlags
0,因此应该分别写入 12 和 0。
写完2个整数后,好像没有效果。然后我使用以下代码打印我的字符串流数据:
我可以看到我的数据的前 8 个字节仍然是 0,即使我只是用两个整数覆盖了前 12 个字节(其中第一个整数!= 0)。
为什么我的字符串流中的数据没有被正确覆盖?
c++ - 声明为返回 int 的函数不返回任何内容。这是未定义的行为吗?
这是 C++ 中的有效函数:
以下定义导致 UB:
问题: 下面的表达式语句会导致UB吗?
非常欢迎从标准中引用。
c++ - 什么是未定义的行为?
我一直在阅读的这种未定义的行为是什么?为什么恶魔会从我的鼻子里飞出来?
c++ - 为什么这是未定义的行为?
为什么以下给定表达式会调用未定义的行为?
我的问题受这里Als 问题的影响
c++ - const 成员和赋值运算符。如何避免未定义的行为?
我回答了关于std::vector of objects 和 const-correctness的问题,并收到了关于未定义行为的评论。我不同意,因此我有一个问题。
考虑具有 const 成员的类:
我想要一个赋值运算符,但我不想const_cast
在下面的代码中使用答案之一:
我的解决方案是
我是否有未定义的行为 (UB)?
没有 UB 会有什么解决方案?
c++ - 未定义的行为和序列点
什么是“序列点”?
未定义的行为和序列点之间的关系是什么?
我经常使用有趣而复杂的表达方式,例如a[++i] = i;
,让自己感觉更好。为什么我要停止使用它们?
如果您已阅读本文,请务必访问后续问题Undefined behavior and sequence points reloaded。
(注意:这是对Stack Overflow 的 C++ FAQ 的一个条目。如果您想批评以这种形式提供 FAQ 的想法,那么开始这一切的 meta 上的帖子就是这样做的地方。该问题在C++ 聊天室中进行监控,FAQ 想法最初是从那里开始的,因此您的答案很可能会被提出该想法的人阅读。)c++ - 一旦遇到被归类为未定义行为的构造,是否允许 C++ 编译器发出随机代码?
可能重复:
未定义、未指定和实现定义的行为
我试图加深对 C++ 中未定义行为的理解。假设 C++ 编译器将有意检测某些未定义行为的情况 - 例如,在两个序列点之间修改变量两次:
一旦那个虚构的编译器可靠地检测到这种情况,它就会说将十个完全随机的机器指令发送到生成的机器代码中。
根据 C++ 标准,任何被归类为 UB 的地方都没有要求发生什么。所描述的虚构编译器是否符合 C++ 标准?