new失败判断-创新互联

使用 malloc/calloc 等分配内存的函数时,一定要检查其返回值是否为空;
但是C++ 里,如果 new 分配内存失败,默认是抛出bad_alloc异常,不会返回空;
但是有些编译器对c++标准支持不是很好,比如vc++6.0中new失败不会抛出异常,而返回0。new失败判断
INT*p = NULL;
try
{
   p = new INT[size];
   if(NULL == p)
   {
      return FALSE;
   }
}
catch (std::bad_alloc& ba)
{
   std::cerr << "bad_alloc caught: " << ba.what() << ' ';
}

方案二:标准 C++ 亦提供了一个方法来抑制 new 抛出异常,而返回空指针。

创新互联公司10多年企业网站制作服务;为您提供网站建设,网站制作,网页设计及高端网站定制服务,企业网站制作及推广,对宴会酒店设计等多个方面拥有多年的网站营销经验的网站建设公司。
INT* p = new (std::nothrow) INT[size];
if(NULL == p)//此时判空就有意义了{
return FALSE;
}

分享题目:new失败判断-创新互联
文章URL:http://bzwzjz.com/article/dgjhgi.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站设计 网站建设方案 成都网站制作 高端品牌网站建设 成都响应式网站建设公司 营销型网站建设 上市集团网站建设 企业网站建设公司 成都网站制作 手机网站制作 网站设计 成都网站制作 成都网站制作 成都响应式网站建设 手机网站制作设计 宜宾网站设计 成都企业网站设计 成都网站建设公司 重庆电商网站建设 梓潼网站设计 成都网站建设 网站设计制作报价