在C++中若要设置长度大于1000000的数组,不能在函数内部声明,因为这样属于局部变量,存放在了栈上,容易造成内存溢出。
解决这个问题有两种办法:
1.将数组声明为全局变量:
#include<iostream>
using namespace std;
int list[1000000]; //声明为全局变量
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>list[i];
}
/****
*****/
return 0;
}
2.将数组存放在堆上:
#include<iostream>
using namespace std;
int main(){
int *list = new int[1000000]; //存放在堆上
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>list[i];
delete[] list;
return 0;
}