undefined-behavior 相关问题

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

是否转换指向const指针并转换回原始类型undefined?

我知道向非const类型转换const指针可能是未定义的行为,但是如果指针最初不是const呢? int i = 0; int * pi =&i; const int * const_pi = const_cast

回答 2 投票 1

C ++序列点和C ++ 17中评估顺序的变化[重复]

我对C ++ 17的更改影响规则的方式感到有点困惑,你不应该在序列点之间修改一个变量2次。例如,这是指定的,未指定的还是未定义的......

回答 2 投票 3

我可以将2D数组视为连续的1D数组吗?

考虑以下代码:int a [25] [80]; a [0] [1234] = 56; int * p =&a [0] [0]; p [1234] = 56;第二行是否调用未定义的行为?第四行怎么样?

回答 7 投票 33

JColorChooser中的异常行为(或可能的错误)

使用JColorChooser时,输入的CMYK值会转换为特定的RGB颜色。在RGB侧手动输入该颜色时,CMYK值与以前不同。下列 ...

回答 3 投票 7

无限循环与无限递归。两者都未定义?

无副作用的无限循环是未定义的行为。有关cppreference的示例,请参见此处。更简单的例子:int foo(){while(true){}返回42;现在考虑几乎......

回答 2 投票 7

我可以强制gcc检测所有未定义的行为吗?

有没有办法强制gcc检测所有未定义的行为?我希望它能够检测在编译时和运行时可以发现的两件事。我知道UB对于简化它更有用...

回答 3 投票 -2

“表达式的评价顺序是从左到右”是什么意思。

编辑澄清:我不是在询问测序的工作原理。这个问题与它被标记为重复的问题不重复。我已经明白x ++ * ++ x是UB。我在问......

回答 1 投票 -1

没有检测到越界指针算术?

根据维基百科和此,这段代码是未定义的行为:#include int main(int,char **){int data [1] = {123}; int * p =数据+ 5; //未定义的行为std :: cout ...

回答 1 投票 2

GCC编译器对类型转换做了什么?为什么mac和linux上的输出不同?

我在范围内进行了变量b(范围外的声明)的类型转换,并给b一个新的val,当范围结束时,b的val似乎是错误的。这发生在我的macbook上,...

回答 1 投票 -2

是否依赖于GCC / LLVM的`-fexceptions`技术上未定义的行为?

据我所知,编译器扩展可能被认为是未定义的而不是实现定义的。我猜(但不确定)这适用于C ++标准以及C ......

回答 3 投票 1

使用fgets在第二次读取时将数据读入未初始化的char指针变量

我知道我们无法使用fgets将数据读入未初始化的char指针。 stackoverflow上有很多关于这一点的问题。所有答案都指向了这个事实......

回答 2 投票 1

在调用toupper(),tolower()等之前,是否需要转换为unsigned char?

不久之前,StackOverflow上有名望的人在评论中写道,在调用std :: toupper(和类似函数)之前,有必要将char-argument转换为unsigned char。 ...

回答 5 投票 27

reinterpret_cast bug还是UB? [重复]

请考虑以下代码:#include #包括 std :: uintptr_t minPointer(void * first,void * second){const auto pair = std :: minmax(reinterpret_cast)

回答 2 投票 15

为什么严格的别名规则不适用于int *和unsigned *?

在C语言中,我们无法使用与该对象的有效类型具有不兼容类型的左值表达式来访问对象,因为这会导致未定义的行为。并基于此......

回答 2 投票 3

使用@s在grep中出现错误行为

我正在为nullmailer编写一个小包装器,当我注意到,imho,这是grep中不需要的行为。特别是我注意到@s有些奇怪。它确实打破了包含@的字符串并将...

回答 1 投票 1

使用未初始化的成员克隆结构后,向量为空

在Rust 1.29.0中,我的一个测试开始失败。我设法将这个奇怪的错误归结为这个例子:#[derive(Clone,Debug)] struct CountDrop(&'a std :: cell :: RefCell ); ...

回答 2 投票 11

C ++异常,未定义的行为和noexcept

关于这个函数int test(int a,int b){return a / b;如果我调用test(2,1),则没有任何反应。但是,如果我调用test(2,0),它会导致未定义的行为。因此,我应该将其定义为noexcept吗?...

回答 2 投票 1

在循环中的什么时候整数溢出变成未定义的行为?

这是一个例子来说明我的问题,其中涉及一些我不能在这里发布的更复杂的代码。 #包括 int main(){int a = 0; for(int i = 0; i <3; ...

回答 12 投票 85

是否在导致未定义行为的行之前定义了一个程序? [重复]

考虑以下代码:int main(){printf(“Hello World!\ n”); int i; i = i ++ + ++ i; // UB}此代码是否保证打印“Hello World!”?最后一行调用未定义的行为,但是......

回答 1 投票 4

XOR交换算法中运算符的未定义行为?

void swap(int * a,int * b){if(a!= b)* a ^ = * b ^ = * a ^ = * b;如上所述* a ^ = * b ^ = * a ^ = * b只是* a = * a ^(* b = * b ^(* a = * a ^ * b))的快捷方式,可以(例如)第二个* a ...

回答 1 投票 5

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