gpt4 book ai didi

C++ new 运算符和错误检查

转载 作者:太空狗 更新时间:2023-10-29 21:45:01 26 4
gpt4 key购买 nike

<分区>

我正在微调一个小项目,我读到如果我尝试创建一个新对象会出错,​​如果失败(内存损坏,内存不足?),它会返回错误。

所以我在想,在下面一行中:

Object* myObj = new Object();

在项目中一般是怎么做的?

Object* myObj;
try
{
myObj = new Object();
}
catch (std::bad_alloc&)
{
//Deal with the Error
}

或者...

Object* myObj = new (std::nothrow) Object();
if(!myObj)
{
//Deal with the Error
}

我假设 #2 是最好的操作,因为尝试/捕获每个新的似乎开销太大。

一想到搜索所有新关键字并在各处添加错误检查就……令人沮丧。还有其他选择吗?或者一些选项使 (std::nothrow) 作为 new 的默认操作?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com