C++里面能运算的一维数组的最大长度为多少???不是能编译的长度,我一个程序定义1000000长度就不能...

C++里面能运算的一维数组的最大长度为多少???不是能编译的长度,我一个程序定义1000000长度就不能运行了,但改到100000时就正常。如果能的话该怎么改到1000000或更好?

首先说明一下,这个问题我不会。下面是一些分析。
数组是静态分配的空间,应该是在栈上,数组你想分配100万个元素的话,如果是char数组,占用的空间就是1M,如果这个值超过了允许的栈空间大小,肯定会出错的。
栈空间视不同的机器不同,至于具体是在编译环境中设置还是在操作系统中设置,我就不知道了。
另外,最好不要用这么大的数组,遍历、修改操作都不方便,性能太低。
下面是一个人的试验:
我用程序测试了一下,大概为10M,这是为什么呢
#include <stdio.h>
int main(int argc,char *argv[])
{
char a[10475760]; //略小于10M,运行通过
printf("%p\n", a);
return 0;
}
#include <stdio.h>
int main(int argc,char *argv[])
{
char a[10485760]; //恰好为10M,出现段错误
printf("%p\n", a);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-22
#include<iostream> #define maxn 1000000 int array[maxn] int main() {……} 这样就OK了。希望能采纳!本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网