C++如何定义一个长度超过一百万的数组

C++如何定义一个长度超过一百万的数组,第1张

你这个数组申明在函数内部,属于局部变量,存放在了栈上,

看看数组占用的内存大小: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行了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11811816.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存