C语言的一维数组长度有限制吗

我在程序使用了几个256个元素,进行运算,没问题。后面改成256*256*256=16777216个的元素的数组运算,就不行了。编译成功。执行不通过。不知道是不是数组太长了
此问题我已自行解决,先用malloc分配256*256*256*sizeof(float)的内存,成功了再使用就没问题。我是1G的内存,用了6个这样的数组,也成功了。看来直接定义int x[16777216]这样的大数组,在运行可能会遇到内存不足的情况。如果先分配好就没问题了

数组长度是有限的,不能超过它的最大长度.
就你所说的情况,可能是内存空间不够,导致执行过程中断,也可能是数组太多数值太大导致系统执行时间不可估量,相对与一般的执行时间来说,假如计算机去执行你的程序需要执行一年的话,算法就进入了一个死循环,没有太多现实意义.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-04-14
数组太长了,你可以用malloc在堆上动态分配空间,这个空间也要下于你内存的剩余空间。
第2个回答  2008-04-14
因为数组要求连续的空间,可能是系统没有连续的空间,所以执行不通过吧本回答被提问者采纳
第3个回答  2008-04-20
先分配好....
第4个回答  2008-04-14
太大了

相关了解……

你可能感兴趣的内容

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