gpt4 book ai didi

c++ - 在 Linux 或 Windows 下定义数组时的区别

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:10:16 25 4
gpt4 key购买 nike

这是定义数组的简单代码。我注意到这段代码可以在 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;
}

最佳答案

该代码不是有效的 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;
}

g++(您在 Linux 上使用的编译器)默认情况下允许通过编译器扩展进行此操作。

关于c++ - 在 Linux 或 Windows 下定义数组时的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4196882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com