undefined-behavior 相关问题

编译或执行打破语言规则的程序的不可预测的结果,编译器,解释器和运行时系统都不得强制执行。

“非常简单的代码中的“非法硬件指令”

[在调查可疑的声明时,我还是写了这个小测试程序。c intprovit(){unsigned int n = 0;而(1)n ++;返回0; } int main(){provit();返回0; } ...

回答 1 投票 4

作为变量的立即数0和0如何与__builtin_clz函数产生不同的行为?

仅在__builtin_clz给出错误答案的情况下。我很好奇是什么导致了这种行为。当我使用文字值0时,我总是得到32的期望值。但是0作为变量...

回答 1 投票 3

硬件SIMD向量指针和相应类型之间的`reinterpret_cast`ing是否存在未定义的行为?

将float *重新解释_cast为__m256 *并通过不同的指针类型访问float对象是否合法? constexpr size_t _m256_float_step_sz = sizeof(__ m256)/ sizeof(float); alignas(__ m256)...

回答 2 投票 2

c-为什么我= ++ i调用未定义的行为? [重复]

我知道C使用序列点的概念来识别模棱两可的计算,并且=运算符不是序列点。但是,我看不出执行...

回答 2 投票 3

[C ++ CTRL + C处理程序具有未定义的行为?

我有一个在Windows 10上运行的大型C ++程序,该程序具有一个主系统来回答套接字请求,并且有2个线程通过套接字客户端类的单独实例运行监视系统。在...

回答 1 投票 0

为什么我会收到UndefinedBehaviorSanitizer:DEADLYSIGNAL? CS50 Pset2裂纹

我在运行时未编译时收到此错误。我隔离了导致错误的行,该行是44(删除它可以避免该错误)。代码段和错误消息如下。根据我的...

回答 1 投票 1

是否通过统一指针UB访问静态类成员?

此问题的后续问题我们有以下代码:#include struct A {static int n; };整数A :: n = 5; int main(){A * a; //故意未初始化std :: ...

回答 1 投票 0


为什么“ i ++ +1”本身未定义?什么可以确保后缀的副作用在计算+之后发生?

我知道这个问题经常在其版本“ i = i ++ +1”中被问到,但是我出现两次,但是我的问题有所不同,因为它只针对该表达式的右边,即...。 >

回答 1 投票 0

正在引用恒定的未定义行为

当然,以下代码段不是一个好主意:char * vram = 0xB8000; memset(vram,32,0x18000);这也不是:volatile char * LCDC = 0xFF40; char LCDCshadow = * LCDC;以下是...

回答 1 投票 0

只要不包含单个标头,重新定义C ++关键字是否合法?

请考虑以下代码:#define private public struct Test {private:int s {9}; }; int main(){}我已经经历了这个和这个。我没有在此处包含单个标头。这是否意味着...

回答 1 投票 3

为什么将内存分配给char指针不会截断char序列

我不明白为什么char * ptr = new char [7]不会截断大于7个字符的数据输入。也是为什么为什么8位char c [7]可以让我输入6个以上的字符(但会出现错误...

回答 3 投票 0

我应该声明我的函数模板专长还是对其进行足够的定义?

我有一些可以检查的课程。实现此功能的代码在头文件中声明一个功能模板,并将其专门用于其他源文件:// check.h template ...

回答 1 投票 1

是一个永远不会终止有效C ++程序的程序吗?

是否需要终止程序?换句话说,是一个在技术上永远无法运行的程序吗?请注意,这与空循环无关。谈论执行“填充”的程序(即...

回答 2 投票 4

printf函数args之间的序列点;转换之间的顺序点重要吗?

我在这里读到一个序列点:在与输入/输出转换格式说明符关联的动作之后。例如,在表达式printf(“ foo%n%d”,&a,42)中,有一个...

回答 3 投票 11

编译器如何知道C ++ constexpr计算不会触发未定义的行为?

C ++标准要求编译器检查C ++ constexpr计算中的未定义行为。在本次演讲中,钱德勒·卡鲁斯(Chandler Carruth)说,当...

回答 3 投票 5

您能否在具有相同表示形式的类型之间重新解释_cast?

假设我们有两种类型,它们具有相同的表示形式(相同的成员变量和基类,并且顺序相同)。在它们之间进行reinterpret_cast是否有效(即不是UB)?例如。是...

回答 1 投票 2

双循环变量上的相等条件:未指定或未定义?

我想直接讲术语。考虑:for(double d = 0.0; d!= 1.0; d + = 0.1)cout << d <

回答 1 投票 1

“为C ++类型推断对已知类型的对象进行材质化]

以下代码在我尝试过的每个C ++ 11和更高版本的编译器中完成了我需要的一切。因此,实际上,就我的目的而言,它可以正常工作(并且至少在Linux上,有望在...

回答 3 投票 0

二维数组的未定义行为分配

更新:在评论中回答在将值分配给2d数组时,我出现了一些奇怪的现象。当我在4 x 9数组的4 x 4部分内分配单个值时,它可以正常工作,但是...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.