Windows系统默认用户栈大小为4M(约4000000)。
现在用了10000000字节当然会溢出。
为什么编译器没报警告呢?原因:编译器编译时并不做检查。
可以尝试将堆栈设置更大(具体怎么设置请百度)
要么将其放到函数外,也就是作为全局(静态)变量存在,那就不受限了(不过最多也就是4G),故编译可以通过。
#include
#include
char a[10000000] = {0};//放外面试试
void main()
{
}
有限制的,在16位和32位程序中的限制不一样。
一般为2的16次方,或32次方.
什么 编译器?
简单的 C 编译器 只支持 64k 也就是 实际 最大 是 64327
用的是什么编译器,是在电脑上吗,你定义数据过多了
如果需要建立那么大的数组的话,可以使用malloc或new来动态分配内存。一般情况下这么大的数组不允许直接设立。