相关疑难解决方法(0)

在try/catch块中新建(std :: nothrow)与New

我在学习之后做了一些研究new,不像malloc()我习惯的那样,对于失败的分配没有返回NULL,并且发现有两种不同的方法来检查new是否成功.这两种方式是:

try
{
    ptr = new int[1024];
}
catch(std::bad_alloc& exc)
{
    assert();
};
Run Code Online (Sandbox Code Playgroud)

ptr = new (std::nothrow) int[1024];
if(ptr == NULL) 
    assert();
Run Code Online (Sandbox Code Playgroud)

我相信这两种方式可以实现相同的目标,(如果我当然错了,请纠正我!),所以我的问题是:

这是new完全基于可读性,可维护性和性能检查是否成功的更好选择,同时忽略了事实上的c ++编程约定.

c++ performance readability exception-handling

39
推荐指数
3
解决办法
2万
查看次数