【发布时间】:2018-09-16 17:15:39
【问题描述】:
例如在下面的代码中:
int myarray[3];
int x = myarray[1];
代码是否保证在恒定时间内成功执行,x 有一些整数值?或者编译器是否可以完全跳过为此发出代码/发出代码以启动 GNU Chess 并仍然符合 C++ 标准?
这在类似于数组的数据结构中很有用,但可以在恒定时间内初始化。 (抱歉,我的 Aho、Hopcroft 和 Ullman 手边没有我的副本,所以找不到名字。)
【问题讨论】:
-
这是未定义的行为。:)
-
你不能那样做。 C/C++ 中没有“垃圾”状态。这不是 SQL!一个对象要么有一个值,你可以通过任何程度的可预测性和定义性读取,要么没有。
-
@MartinC.Martin:你如何区分随机的“垃圾值”和有效值?
-
问题是这是自动存储还是进程/线程存储?全局数组的默认初始化是零值初始化。