这是一个定义数组的简单代码.我注意到这个代码在Linux(OpenSue,gcc编译器)下可以工作(编译和运行),但它在Windows系统下不起作用.编译器提供了错误提示.有人知道原因吗?谢谢!
#include <iostream>
using namespace std;
int main()
{
int N;
cin>>N;
int ar[N];
ar[0]=0;
cout<<"ar[0]= "<<ar[0]<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Kon*_*lph 12
代码无效C++,因为C++不允许像您一样声明具有可变大小的(堆栈分配的)数组.这样做的原因是C++提供了更好的机制来声明动态大小的数组,使用std::vector其标准库中的类:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int N;
cin >> N;
vector<int> ar(N);
ar[0] = 0;
cout << "ar[0] = " << ar[0] << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
g++ (默认情况下,您在Linux上使用的编译器)允许通过编译器扩展.