小蒙 发表于 2017-10-25 21:00:28

出现array index in initializer exceeds array bounds,程序还能正常编译运行

本帖最后由 小蒙 于 2017-10-25 21:03 编辑





int x[] = { = 2};
通过指定初始化器的方式给一个未定义长度的数组初始化,书上说的意思好像能正常运行,没有问题,可是用Clion编译出现如图的error,但是运行程序还是会正常运行,数组被“正确的”初始化,问题在哪儿?

BngThea 发表于 2017-10-26 09:21:44

没有指定x的长度,强制将第2个元素赋值,编译器可能认为这不科学

小蒙 发表于 2017-10-26 11:12:45

BngThea 发表于 2017-10-26 09:21
没有指定x的长度,强制将第2个元素赋值,编译器可能认为这不科学

理是这样的,但是我从C Primer plys书里摘的这段话给人感觉不像是错误范例啊。

小蒙 发表于 2017-10-26 11:13:35

BngThea 发表于 2017-10-26 09:21
没有指定x的长度,强制将第2个元素赋值,编译器可能认为这不科学

而且编译器显示错误,但是程序还能正常运行。

BngThea 发表于 2017-10-26 11:28:13

小蒙 发表于 2017-10-26 11:13
而且编译器显示错误,但是程序还能正常运行。

正常,现在的编译器越来越聪明,指不定你用老的比如vc6.0来编译就不报错了
页: [1]
查看完整版本: 出现array index in initializer exceeds array bounds,程序还能正常编译运行