new(std::nothrow) 和 new() 的区别
来源:互联网 发布:保温瓶 老式 淘宝 编辑:程序博客网 时间:2024/05/18 02:03
源码方面的信息就不详细讲述了,找找代码看看便知,简要说明下:
new(std::nothrow) 顾名思义,即不抛出异常,当new一个对象失败时,默认设置该对象为NULL,这样可以方便的通过if(p == NULL) 来判断new操作是否成功
普通的new操作,如果分配内存失败则会抛出异常,虽然后面一般也会写上if(p == NULL) 但是实际上是自欺欺人,因为如果分配成功,p肯定不为NULL;而如果分配失败,则程序会抛出异常,if语句根本执行不到。
因此,建议在c++代码中,凡是涉及到new操作,都采用new(std::nothrow),然后if(p==NULL)的方式进行判断
原文链接:http://blog.sina.com.cn/s/blog_65d204330101do6r.html
阅读全文
1 0
- new(std::nothrow) 和 new() 的区别
- new(std::nothrow) 和 new
- new 和 new(std::nothrow)
- new && new(std::nothrow)
- new && new(std::nothrow)
- c++的new(std::nothrow)
- 关于 new(std::nothrow)
- new(std::nothrow)
- new (std::nothrow) 与 new
- new (std::nothrow) 与 new
- new(std::nothrow) 应用场景
- new(std::nothrow) 应用场景
- new(nothrow)
- nothrow new
- new(nothrow)
- 【理论实践】new的三种用法:plain new,nothrow new和placement new
- new (nothrow) T() 的原理
- new (nothrow) T() 的原理
- ButtonKnife在library报“Attribute value must be constant”
- 简易菜单界面
- Android之无法隐藏标题栏 继承AppCompatActivity的Activity无法隐藏标题栏解决方案
- 分享几个视频音频学习网站
- GitHub和webstorm配置
- new(std::nothrow) 和 new() 的区别
- Vue 爬坑之路(一)—— 使用 vue-cli 搭建项目
- NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9843)
- 讲本地项目提交到github
- 卸载oracle软件:
- 从初等数学的角度初探神经网络
- 关于MySQL Proxy Users的功能测试报告
- Split过程源码分析
- 如何在页面设置一个透明层