c++碰到的几个问题
来源:互联网 发布:历史发明家袁腾飞 知乎 编辑:程序博客网 时间:2024/04/29 06:19
这些问题都是没有考虑到cpu和内存极限所引起来的。
1、内存不够时,new会引起异常(至少我电脑上vs2008是直接崩溃,而不是返回null)。要返回NULL,如下使用:
FRAME_AUDIO* frame = new(std:nothrow)FRAME_AUDIO; 或者
FRAME_AUDIO* frame = new(std:no throw)FRAME_AUDIO();
后者会在new的同时用0初始化结构体。
2、sdk的vector没有考虑上限,所以当电脑性能不够时,sdk里面的音视频帧会一直堆积起来,同时会产生bad_alloc之类的警告。撑爆内存。这是很深刻的教训。
写了个demo,看看new异常的表现,记录如下:
if(内存不足 -- 内存申请到了1.7G以上)
{
if(使用没有std::nothrow的new)
{
if(主线程)
{
弹出内存不足对话框(不管debug还是release);
}
else if(子线程)
{
抛出异常
}
}
if(使用有std::nothrow的new 或者 malloc)
{
直接返回null指针
}
}
至于大型软件中,使用没有std::throw的new,内存用到500M以上,就抛出异常的情况,没有重现出来。希望有经验的大牛指点一下。
0 0
- mysql碰到的几个问题
- c++碰到的几个问题
- Silverlight 中碰到的几个问题
- 使用JavaMail碰到的几个问题
- 菜鸟的第一次,关于碰到的几个问题
- 9月碰到的几个问题和知识点
- 在CentOS6.4中碰到的几个问题
- Spring应用时碰到的几个问题
- 在学习dubbo碰到的几个问题
- 面试会经常碰到的几个问题
- GridView中均分中碰到的几个问题
- 微信网页开发碰到的几个问题
- 嵌入式C的几个问题
- 目前我碰到的PCAnyWhere 的几个问题(可能是BUG)
- IE访问Form Builder网站的碰到的几个问题
- 过去用JavaScript写ASP时碰到的几个问题。
- 过去用JavaScript写ASP时碰到的几个问题。
- ASP.NET 升级AJAX 配置以及碰到的几个问题
- Dubbo学习总结(1)——Dubbo入门基础与实例讲解
- 2016年学习计划
- jenkins入门总结
- Android:状态栏Notification
- Objective-C之内存管理
- c++碰到的几个问题
- java 返回指定月份的第一天的0分0秒
- 友盟社会化组件iOS版使用评测
- hdu5410 完全背包+01背包
- Loan Pattern
- Timer的purge
- ssh整合配置
- Dubbo学习总结(3)——Dubbo-Admin管理平台和Zookeeper注册中心的搭建
- Struts2零配置之Configuration by Convention(一)