C语言 字符数组 初始化问题 char a[10000000] = {0};
定义了如下字符数组并对其初始化,编译器提示没有错误,但是一编译就出现错误,调试了下说是溢出了,去一个0就可以了,到底怎么溢出了??求教~~~chara[10000000]...
定义了如下字符数组并对其初始化,编译器提示没有错误,但是一编译就出现错误,调试了下说是溢出了,去一个0就可以了,到底怎么溢出了??求教~~~
char a[10000000] = {0}; 展开
char a[10000000] = {0}; 展开
6个回答
展开全部
#include<stdio.h>
#include<stdlib.h>
char a[10000000] = {0};//放外链嫌面试凳唤罩枣闹试
void main()
{
}
#include<stdlib.h>
char a[10000000] = {0};//放外链嫌面试凳唤罩枣闹试
void main()
{
}
追问
的确可以,但是这是为什么呢?
追答
因为在函数里面的话优先级比较低,数组不能开太大的.在函数数外面就可以了,不过也不能无限大的,如果超出了你自己计算机的内存也是不行的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有限制的,在16位和32位程序中的限制不一样。
一般为2的16次方,或32次方.
一般为2的16次方,或32次方.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么 编译器?
简单的 C 编译器 只支持 64k 也就是 实际 最大 是 64327
简单的 C 编译器 只支持 64k 也就是 实际 最大 是 64327
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用的是什么编译器,是在电脑上吗,你定义数据过多了
追问
用的是Visual Stdio 2010,就定义了这一个数组,别的没啥。
追答
是用在单片机上吗,如果是,你选择的单片机型号没有这么多内部ram的,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果需要建立那么大的数组的话,可以使用malloc或new来动态分配粗喊春内存。渗余一般情岩耐况下这么大的数组不允许直接设立。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询