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

2025-02-25 15:42:22
推荐回答(2个)
回答1:

首先说明一下,这个问题我不会。下面是一些分析。
数组是静态分配的空间,应该是在栈上,数组你想分配100万个元素的话,如果是char数组,占用的空间就是1M,如果这个值超过了允许的栈空间大小,肯定会出错的。
栈空间视不同的机器不同,至于具体是在编译环境中设置还是在操作系统中设置,我就不知道了。
另外,最好不要用这么大的数组,遍历、修改操作都不方便,性能太低。
下面是一个人的试验:
我用程序测试了一下,大概为10M,这是为什么呢
#include
int main(int argc,char *argv[])
{
char a[10475760]; //略小于10M,运行通过
printf("%p\n", a);
return 0;
}
#include
int main(int argc,char *argv[])
{
char a[10485760]; //恰好为10M,出现段错误
printf("%p\n", a);
return 0;
}

回答2:

#include #define maxn 1000000 int array[maxn] int main() {……} 这样就OK了。希望能采纳!