在C ++中,访问未初始化的数组是未指定的行为还是未定义的行为?

马丁·马丁

例如,在以下代码中:

int myarray[3];
int x = myarray[1];

是否可以保证代码在恒定时间内成功执行并x具有某些整数值?还是编译器可以完全跳过发射代码/发射代码以启动GNU Chess并仍然符合C ++标准?

这在类似于数组的数据结构中很有用,但可以在恒定时间内初始化。(抱歉,请不要随身携带Aho,Hopcroft和Ullman的副本,因此无法查找名字。)

1201程序警报

这是未定义的行为。

根据标准([dcl.init]第12段),

如果未为对象指定初始化程序,则该对象将被默认初始化。当获得具有自动或动态存储持续时间的对象的存储时,该对象具有不确定的值,并且如果未对该对象执行初始化,则该对象将保留不确定的值,直到该值被替换为止...如果不确定的值为由评估产生的行为是不确定的,但以下情况除外

在以下所有情况下,都将解决对无符号窄字符类型或的访问std::byte,这可能导致不确定的值而不是未定义的值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用未定义的成员int定义行为的C初始化全局结构?

在 C++ 中,用自身初始化全局变量是否具有未定义的行为?

TDD:确定性地测试成员初始化,给定C ++中未定义的行为

在 C90 中使用部分初始化的结构时的未定义行为

未初始化的C ++结构的行为

C ++中未初始化的变量行为

数组 C 中的结构初始化行为

c - 在c中的二维数组上越界访问内部数组是否是未定义的行为

在C ++标准中是否正在访问位域联合常见的初始数据未定义的行为

C++ 中指定初始值设定项的未定义行为

是在C中获取无效指针的值未定义还是实现定义的行为?

通过预定义的静态地址访问寄存器是C ++中未定义的行为吗?

C ++工会成员访问和未定义的行为

写入未初始化的变量:未定义的行为?

引用未初始化的内存。未定义的行为?

是“ -1 >> 5;” C中未指定的行为?

C ++数组上指针数学的未定义行为

在C中访问链接脚本变量的“值”是否未定义行为?

对象初始化后在C ++中显示char数组时出现异常行为

未定义的行为在C中串联字符串

C ++中的签名溢出和未定义的行为(UB)

C ++中右移的未定义行为

C ++中的++ * ptr ++是未定义的行为吗?

这也是Ansi C中未定义的行为吗?

sum +++ i是C中未定义的行为吗?

C++ 中的未定义行为

是(a = 1)= 2在C ++ 98中未定义的行为吗?

模拟C中的空指针未定义行为

这是 C 中未定义的行为吗?