如果我们在c ++中初始化一个二维数组,如:
int n;
cin>>n;
int a[n][1000]= {0};
为什么编译但不能正常工作?我试图访问[4] [2],它给了我2,而它应该给我0,而在以下情况下:
int n;
cin>>n; int a[n]= {0};
它的工作非常好。使用gcc c ++ 14编译器
答案 0 :(得分:0)
为什么要编译
该计划格式不正确。但是,某些编译器支持将可变长度数组作为语言扩展,因此将允许您显示的两个示例程序。
为什么......但不能正常工作?
我怀疑你期望程序的行为与它的表现不同。 为什么它的行为会有所不同取决于您的预期。或者您可能尝试创建一个比堆叠更大的数组。