标题:怎么声明100万大小的数组?
只看楼主
复旦
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:81
专家分:124
注 册:2018-10-29
结帖率:100%
已结贴  问题点数:20 回复次数:3 
怎么声明100万大小的数组?
有一道题模拟2维Ising模型,老师要求计算100万步骤。
可是声名 int sum[1000000];的话,vc2010里出错。
那应该要怎么声名?
搜索更多相关主题的帖子: 声明 大小 数组 int 出错 
2018-11-14 20:36
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6809
专家分:42393
注 册:2010-12-16
得分:15 
int sum[1000000]
sizeof(int) 应该是4个字节吧 4 * 1000000 约等于 4 M了,默认堆栈印象是1M,肯定出错

 int *sum = (int *)malloc(4 * 1000000 * sizeof(int));

试试这样。在堆开辟空间,用完后记得释放内存哈

我行我乐
我的博客:
http://blog.yuccn. net
2018-11-15 00:08
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:5 
#include <memory>

auto arr = std::make_unique<int[]>(1000000);
能编译通过吗?若能,就用它。

否则,用
#include <vector>

std::vector<int> arr( 1000000 );


2018-11-15 09:06
复旦
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:81
专家分:124
注 册:2018-10-29
得分:0 
谢谢
2018-11-16 14:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-491274-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.541625 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved