看看数组占用的内存大小:1000000=1000*1000然后乘以int型数据长度
1000*1000*4byte约等于4M,
而栈的默认内存空间为1M左右,所以会导致内存溢出
解决这个问题,可以将数组申明在全局存储区或堆上即可
方法一:申明为全局变量
#include<iostream>#include<algorithm>
using namespace std
int list[1000000]//全局变量
int main(){
int a,b
cin>>a
for(b=0b<ab++)
cin>>list[b]
sort(list,list+a)
for(b=0b<ab++)
cout<<list[b]<<endl
return 0
}
方法二:存放在堆上
#include<iostream>#include<algorithm>
using namespace std
int main(){
int a,b,*list
//int list[1000000]
list = new int[1000000]//存放在堆上
cin>>a
for(b=0b<ab++)
cin>>list[b]
sort(list,list+a)
for(b=0b<ab++)
cout<<list[b]<<endl
return 0
}
不会最大行就到1048576。新建一个文件就有1048576行了。如果新建的文件没有到达这个限制,但是放不下可以按照如下方法 *** 作:1、点击左上角的Office图标,在d出来的菜单中点“Excel选项”按钮2、在d出来的“Excel选项”对话框左边点“保存”选项卡3、再在右边“保存工作簿”下面的“将文件保存为此格式”后面改成“Excel工作簿(*.xlsx)”。4、再重新启动一下Excel,新建一个文件就有1048576行了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)