【发布时间】:2023-03-15 13:23:02
【问题描述】:
#include <iostream>
using namespace std;
int main()
{
cout<<"started "<<endl;
int n= -2;
int array[n];
array[0]=100;
array[1]=200;
cout<<array[0]<<endl;
cout<<array[1]<<endl;
cout<<"over"<<endl;
return 0;
}
为什么会编译和运行?我预计会出现编译错误,因为 n 的值为负数。
【问题讨论】:
-
为什么重要?如果您知道这是错误的并产生未定义的行为,请不要这样做。
-
即使
n是肯定的,它也不是有效的 C++。 -
@PaulMcKenzie,C++14 支持 VLA。
-
@BrianCain 需要引用。
-
@BrianCain,不,他们被拉进了 TS。
标签: c++ compiler-errors