请教各位!数组的容量最大可以是多少?

liueast 2003-09-04 07:47:56
我的数组定义为float d[10000][10000],编译的时候就有警告,好象是超过了什么值,我是在vc下编译的,数组的最大容量有限制吗?
...全文
748 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
紫郢剑侠 2003-09-06
  • 打赏
  • 举报
回复
跟系统编译器有关,太大会产生系统溢出
liueast 2003-09-06
  • 打赏
  • 举报
回复
昨天拼了命试了一把,居然可以运行,不过不知道数据有没错,正在检查。
如果按上面这样说,其实只要C盘足够大,内存的问题都可以让硬盘解决了?
myyan 2003-09-05
  • 打赏
  • 举报
回复
32位的机器在堆里动态分配(new,malloc)可以使用硬盘的空间的。可以用一个程序验证。
void main()
{
float *p=NULL;
while(TRUE)
{ p=new float[1000000];
cout<<"eat memory"<<endl;
if(NULL==p)
exit(1);
}
}

用VC运行的时候,内存会噶吱噶吱的响,对键盘鼠标都没有了响应,但是没有退出。但是在TC等16位的编译器里,会exit退出。
ppzcgg 2003-09-05
  • 打赏
  • 举报
回复
楼上说得有道理,数组太大,会造成堆栈溢出,如果在堆里分配内存,数组应该可以很大.
sakurar 2003-09-05
  • 打赏
  • 举报
回复
不过这么大的数组,堆分配也很困难。
10000 * 10000 * 4 byte = 381兆.
sakurar 2003-09-05
  • 打赏
  • 举报
回复
堆栈溢出,应malloc or new 进行堆分配。
binjuny 2003-09-05
  • 打赏
  • 举报
回复
最好用动态分配,不然这次分配成功,但下次也可能不成功会造成很大的麻烦.
limd 2003-09-05
  • 打赏
  • 举报
回复
也值得关注,没有去试过申请这么大的内存
myyan 2003-09-05
  • 打赏
  • 举报
回复
栈内存分配,栈的容量是有限的,最好使用堆动态分配,new float [][].对于32位以上的应用程序,因为32位操作系统支持“虚存”,内存用完了,自动用硬盘空间顶替。
simclock 2003-09-05
  • 打赏
  • 举报
回复
动态分配吧
liueast 2003-09-05
  • 打赏
  • 举报
回复
大家讨论了这么久,到底行不行啊?其实我是拿来读数用的,我也不想开那么大!
我听朋友说大小和计算机内存有关,内存多大,数组就可以多大!这是真的吗?
keiven 2003-09-04
  • 打赏
  • 举报
回复
应该有个限制吧,不过具体是多少不知道。
liao2001 2003-09-04
  • 打赏
  • 举报
回复
你有多大胆,地有多高产
ehhl 2003-09-04
  • 打赏
  • 举报
回复
难道你真的需要那么大的数组嘛?
现实中我想可能性不大吧,^_^
psprite 2003-09-04
  • 打赏
  • 举报
回复
跟系统编译器有关,太大会产生系统溢出,编译器是不容许的
lijiuhua0721 2003-09-04
  • 打赏
  • 举报
回复
应该是超过存储空间了!!
tonybaobao 2003-09-04
  • 打赏
  • 举报
回复
你这么定义,相当于10000X10000个float所占的空间,是太大了一点吧?
限制应该有的,可是我也不太清楚。关注
thisismq 2003-09-04
  • 打赏
  • 举报
回复
好像有限制,定义太大的话,系统分配不了.

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧