C语言怎样开一个大小为1000000的一维数组,直接弄好像运行不了。

 我来答
White_MouseYBZ
推荐于2016-10-24 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6621万
展开全部

通常用两个办法解决这个问题:

  1. 声明一个全局数组。就是在所有函数之外声明,如int a[1000000];就可以了。

  2. 在需要的函数中用malloc函数动态申请内存,如int *pt=(int *)malloc(sizeof(int)*1000000);就可以了。用完后要用free(pt);释放所申请的内存空间。


tanarri
2010-10-14 · TA获得超过1.1万个赞
知道大有可为答主
回答量:5123
采纳率:33%
帮助的人:8155万
展开全部
你直接放在main里要占用栈空间的,栈空间只有几十k,放不下。
你可以设为全局变量,或者用malloc(),malloc()可以到4g大小
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bjingseo
2010-10-14 · TA获得超过1281个赞
知道答主
回答量:435
采纳率:0%
帮助的人:249万
展开全部
srand(time(NULL));
一个时间种子因为要随机,时间一直在改变的
tmp = rand();
tmp %= 1000000;
取模 就得到随机数了
.
希望能够帮助你 ^_^ 也希望能够选为最佳答案!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e2e439bc0
推荐于2017-11-23 · TA获得超过257个赞
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:154万
展开全部
#include<stdio.h>
#include<iostream.h>
#include<stdlib.h>
void main()
{
int *test;

test=(int *)malloc(sizeof(int)*1000000);
for(long a=0;a<1000000;a++)
{
test[a]=a;
cout<<test[a];
}
}

输出0-999999..运行时间有点长,只是个例子。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
anglecloudy
2010-10-14 · TA获得超过1981个赞
知道小有建树答主
回答量:831
采纳率:0%
帮助的人:621万
展开全部
用动太分配
char* p = new char[1000000];

动态分配是在堆上分,堆是很大的。如果你直接定义是在栈上分配空间。栈的空间有限。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式