如何模拟内存不足情况???

jihailong 2006-12-07 04:38:46
自己做了一个c++内存管理的class
但是测试的时候遇到问题:
内存分配时候new总是成功,无法模拟内存不足,就无法测试自己的代码是否工作良好。开始采用了不停的使用new语句的策略,但是把机器弄得其慢无比。
试问大家:如何让new语句乖乖的失败,以便我的class可以处理这个失败。
...全文
334 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
muroachanf 2006-12-08
  • 打赏
  • 举报
回复
我估计new会总是成功的,至少从系统的角度来看,要new到返回错误还是比较困难的,我建议的作法是根据物理内存大小,限制总共分配的内存大小,如果超过,则返回null或者进行错误处理.
OOPhaisky 2006-12-08
  • 打赏
  • 举报
回复
重载operator new/delete



开始采用了不停的使用new语句的策略,但是把机器弄得其慢无比。
-----------------------------------------------------------------------------------
这种方法根本不可行,因为如果真正内存不足了,则程序将无法作任何事情了。
eqxu 2006-12-08
  • 打赏
  • 举报
回复
注意,new完要写一点东西进去,这样就可以了,如果一直new没有脏数据也是不行的
听不听话 2006-12-08
  • 打赏
  • 举报
回复
重载new和delete(顺便重载new[]和delete[]也行)
  • 打赏
  • 举报
回复
让new失败,
自己重载new吧.

因为事实上.内存不够用,系统会自动从硬盘上分配空间充当虚拟内存.

直到硬盘喀嚓喀嚓地响.
lyy1089 2006-12-07
  • 打赏
  • 举报
回复
UP
jixingzhong 2006-12-07
  • 打赏
  • 举报
回复
我的意思就是,
直接触发异常 ....

或者说是 故意 触发你定义的异常,
测试一下改异常工作是否正常 ~~~~~~
jixingzhong 2006-12-07
  • 打赏
  • 举报
回复
直接返回分配失败试试 ~~
neosu 2006-12-07
  • 打赏
  • 举报
回复
如果new都失败了. 你的错误处理能否正常运行都是个问题......
jihailong 2006-12-07
  • 打赏
  • 举报
回复
我重载的new/delete负责处理内存不足,楼上方法不大适合
kenneth_lueng 2006-12-07
  • 打赏
  • 举报
回复
我试过不停的new,最后是系统报错,程序被强行中止

重载new, 直接返回一个NULL
owlling 2006-12-07
  • 打赏
  • 举报
回复
自己用list模拟一个内存pool。,然后用空list

==================================
欢迎访问我的个人主页:http://www.lingjie.net/
==================================
taodm 2006-12-07
  • 打赏
  • 举报
回复
重载new/delete呀。看effecitve c++关于内存的item
KUCHIBUE 2006-12-07
  • 打赏
  • 举报
回复
多new一点啊

65,186

社区成员

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

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