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

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

数组长度是有限的,不能超过它的最大长度.
就你所说的情况,可能是内存空间不够,导致执行过程中断,也可能是数组太多数值太大导致系统执行时间不可估量,相对与一般的执行时间来说,假如计算机去执行你的程序需要执行一年的话,算法就进入了一个死循环,没有太多现实意义.

数组太长了,你可以用malloc在堆上动态分配空间,这个空间也要下于你内存的剩余空间。

因为数组要求连续的空间,可能是系统没有连续的空间,所以执行不通过吧

先分配好....

太大了