取决于物理系统剩余内存大小。在C语言中,malloc动态开辟的空间,以及静态数组均是占用堆上的内存的。而系统堆内存是与进程无关的,堆内存的剩余量,就是系统内存的剩余量,包括物理内存和虚拟内存。所以,只要系统内存剩余有多大,那么malloc和静态数组就可以开多大。不过,由于系统内存剩余量并非固定,而是...
理论上说,只要不超过硬件许可,开多大都可以。实际上,有限制。我的计算机,这个可以:#include<stdio.h>int a[1000000]; // 全局量,允许比较大的数组int main(){a[999999]=999999;printf("%d ",a[999999]);return 0;} 若int a[1000000]; 放到main()里,就不行了。---C语言无符号整型数有最大限制,所以...