我正在学习C语言,并在MacOSX上使用CodeBlocks编写和构建我的测试脚本。讲师说,一旦使用varname [limitInt]进行设置,就无法增加数组的元素。
但是,我有以下内容:
#include <stdio.h>
int main() {
int num[4] = {1,2,3,4,5};
int n = 5;
num[n] = 6;
num[6] = 7;
for(n=0;n<10;n++) {
printf("%d\n",num[n]);
}
}
建筑物显示有关数组初始化器中多余元素的警告,并且数组索引6超出数组末尾。但是我并没有停止...构建可以正常工作,并且我可以运行以下结果:
1
2
3
4
-353028040
6
7
-1687410582
-353028040
32766
尽管它确实抛出[1]并中止运行,但它仍然运行。
这就是我的想法:
对于1:有没有办法用这些类型的警告来进行失败?也许使用其他编译器?
对于2:如果C允许它扩展,但返回1,有人可以向我描述原因吗?