#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
的值是負值。爲什麼這個C++程序符合並在代碼塊中運行
它爲什麼重要?如果你知道這是錯誤的,併產生未定義的行爲,不要這樣做。 – CoryKramer 2014-10-27 20:07:36
即使'n'是肯定的,它也是無效的C++。 – PaulMcKenzie 2014-10-27 20:07:51
@PaulMcKenzie,C++ 14支持VLA。 – 2014-10-27 20:11:08