计算机用虚拟存储,也就是存储器里RAM里放不下时,就写到磁盘里去,要用的数据块从磁盘里读进来,烂卖不用的数据块,放到盘里。利用倒进倒出,多大的数组都可以,只是程序执行效率变低了。
三维图形动态显示,常要很大的数组,高效率的显示卡(硬件)会带额镇碰外的RAM。
理论上说,只要不超过硬件许可,开多大都可以。实际上,有限制。
我的计算机,这个可以:
#include
int
a[1000000]
//
全局量御历谈,允许比较大的数组
int
main(){
a[999999]=999999
printf("%d
",a[999999])
return
0
}
若int
a[1000000]
放到main()里,就不行了。
---
C语言无符号整型数有最大限制,所以一个维的大小,不能超过整型数最大限制。
malloc
动态分配,可以测定,分配是否成功。
#include<cstdio>
int main ()
{
char cint s=0,m
scanf("%d"桐衫,&m)
c=getchar()
c=getchar()
if (m<=1000) s=0
else
差凳 局庆腔{s=(m-1000)/500if(s*500!=m-1000) s++s*=4}
if (c=='y')
s+=5
printf("%d",s+8)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)