一个程序可用的堆和栈的大小

i_jianyong 2003-06-23 08:13:35
我想把一组大对象放到STL容器中,就效率而言,当然用指针较好。但我印象中似乎一个程序可用的堆有限,如何知道堆的大小?能改变吗?谢谢
...全文
41 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zteliubin 2003-06-23
  • 打赏
  • 举报
回复
大数据当然应该用堆来存放
栈本来就设计来存实参和临时变量。
zteliubin 2003-06-23
  • 打赏
  • 举报
回复
64k是不小了。
你不用递归的话,应该足够。
i_jianyong 2003-06-23
  • 打赏
  • 举报
回复
试了一下,我的机器512MB内存,竟然成功分配了一个1GB的堆,真是不可思议,当然这用到虚拟内存了。

但在栈中分配 1MB 就失败了
i_jianyong 2003-06-23
  • 打赏
  • 举报
回复
64k??? 那么小啊,我可是要处理上千篇文本的说
Meyer 2003-06-23
  • 打赏
  • 举报
回复
>>你可以试试让一个程序连续的在堆里分配空间.一直能分到机子死到那里.^v^
这个牛角尖就不用钻了,想不出,你这种动作有什么实际意义。
而且一个软件一般都会有个最低配置要求。
hello_wyq 2003-06-23
  • 打赏
  • 举报
回复
一般是64k
i_jianyong 2003-06-23
  • 打赏
  • 举报
回复
栈有限,堆却是足够大的,这可是好消息啊,我试试,谢谢楼上两位先
snipersu 2003-06-23
  • 打赏
  • 举报
回复
堆一般被认为是足够大.
你可以试试让一个程序连续的在堆里分配空间.一直能分到机子死到那里.^v^
Meyer 2003-06-23
  • 打赏
  • 举报
回复
一般认为
栈有限, 堆却是足够大的
chinazcw 2003-06-23
  • 打赏
  • 举报
回复
这个问题应该是由操作系统所决定的,具体还不大明白。
i_jianyong 2003-06-23
  • 打赏
  • 举报
回复
在linux下呢?
joachern 2003-06-23
  • 打赏
  • 举报
回复
要是在win2000下,这种问题好像不用考虑
yzb1000 2003-06-23
  • 打赏
  • 举报
回复
不太明白,学习
堆好像是有限的,不过好像也是够大的
yzb1000 2003-06-23
  • 打赏
  • 举报
回复
NT不是宣称每个程序有4G的内存吗?虽然是虚拟的,不过不用我们管
cdqy 2003-06-23
  • 打赏
  • 举报
回复
我的理解:这跟操作系统有关,内存的管理完全是由操作系统完成的。而且操作系统不是一次就把程序全部读入内存,只把程序的一部份读入内存的。只有当你一次就申请了大量空间,超过了规定的最大虚拟内存时,系统就会报虚拟内存不够的错误信息。
mahu213 2003-06-23
  • 打赏
  • 举报
回复
现在的系统因为用到了虚拟内存所以可以分出很大的堆栈啊!!
这你不需要操心的啊!!
我曾试过啊,不停的划分堆栈,好久都不会死机啊!
只是硬盘在不停的狂转啊!!
你可以试试啊!
我想你尽可以放心去用啊!!

69,369

社区成员

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

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