申请更多的内存????

nihaoabq 2010-04-20 09:54:46
我记得以前好象在哪里看到过,就是有个函数可以告诉系统我需要很多的内存,但是忘了是哪个函数了,有没有知道的.
...全文
148 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
nihaoabq 2010-04-20
  • 打赏
  • 举报
回复
其实也不是需要那么大,因为我每次需申请要几K大小,并且不释放,当累计申请超过3万多个的时候就申请失败了,这时候在任务管理器中看程序使用的内存也就3百多M,
如果改为NEW的话没问题,但是我用的是一个现成的CBuffer类.不想在改了..
superhard_d 2010-04-20
  • 打赏
  • 举报
回复
每个应用程序分配4G的虚拟内存,其中系统占2G,2G给应用程序,楼主想申请多大?
icansaymyabc 2010-04-20
  • 打赏
  • 举报
回复
现在的系统好像直接申请就可以了,实在不行先插几颗内存条上去再申请。
vrace 2010-04-20
  • 打赏
  • 举报
回复
你用 VirtualAlloc 先不要直接就 MEM_COMMIT 了三
nihaoabq 2010-04-20
  • 打赏
  • 举报
回复
来人啊................
nihaoabq 2010-04-20
  • 打赏
  • 举报
回复
我用VirtualAlloc(NULL,nNewSize,MEM_COMMIT,PAGE_READWRITE);
申请的,真的会返回NULL哦...
而且我用任务管理器查看内存还是有很多的哦..
chenyu2202863 2010-04-20
  • 打赏
  • 举报
回复
当然,malloc参数是size_t类型的,也就是说不能一次超过4G
nihaoabq 2010-04-20
  • 打赏
  • 举报
回复
啊,,想想啊,我找了很长时间没找到...
chenyu2202863 2010-04-20
  • 打赏
  • 举报
回复
现在的机器都用了虚拟内存技术,不管你malloc多少,应该都不会返回失败!
ztenv 版主 2010-04-20
  • 打赏
  • 举报
回复
同样忘了,汗;
赵4老师 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 lthyxy 的回复:]
计算机组成原理→DOS命令→汇编语言→C语言、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言、架构……
[/Quote]
引用请注明出处。呵呵!(^_^)
nihaoabq 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 zhao4zhong1 的回复:]
引用 15 楼 nihaoabq 的回复:
引用 13 楼 zhao4zhong1 的回复:
用文件读/写模拟数组取/赋值,大小只受硬盘空间限制
_open
_lseeki64
_read
_write
_close

这到是一个方法,不过速度的话有点受限..

速度一点也不受限。
别忘了操作系统有读写缓冲区,还有读写Cache。
[/Quote]
哦了,就用这个办法.
liutengfeigo 2010-04-20
  • 打赏
  • 举报
回复
计算机组成原理→DOS命令→汇编语言→C语言、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言、架构……
赵4老师 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 nihaoabq 的回复:]
引用 13 楼 zhao4zhong1 的回复:
用文件读/写模拟数组取/赋值,大小只受硬盘空间限制
_open
_lseeki64
_read
_write
_close

这到是一个方法,不过速度的话有点受限..
[/Quote]
速度一点也不受限。
别忘了操作系统有读写缓冲区,还有读写Cache。
nihaoabq 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 zhao4zhong1 的回复:]
用文件读/写模拟数组取/赋值,大小只受硬盘空间限制
_open
_lseeki64
_read
_write
_close
[/Quote]
这到是一个方法,不过速度的话有点受限..
nihaoabq 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 inflexible_lin 的回复:]
引用 4 楼 chenyu2202863 的回复:
当然,malloc参数是size_t类型的,也就是说不能一次超过4G

还有什么realloc
[/Quote]
这到是一个方法,不过速度的话有点受限..
赵4老师 2010-04-20
  • 打赏
  • 举报
回复
用文件读/写模拟数组取/赋值,大小只受硬盘空间限制
_open
_lseeki64
_read
_write
_close
aleyn 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chenyu2202863 的回复:]
当然,malloc参数是size_t类型的,也就是说不能一次超过4G
[/Quote]
还有什么realloc
chenyu2202863 2010-04-20
  • 打赏
  • 举报
回复
new是调用的malloc,而malloc在windows上是HeapAlloc,HeapAlloc也调用了VirtualAlloc

64,641

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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