欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

std:nothrow不抛异常置空指针

程序员文章站 2022-10-31 17:02:18
通常,我们写c++程序,new一个对象的时候,使用如下的方式: demo* p = new demo(); 而另外一种写法就是像下面这样,在new的后面加上std::nothrow demo...

通常,我们写c++程序,new一个对象的时候,使用如下的方式:

demo* p = new demo();

而另外一种写法就是像下面这样,在new的后面加上std::nothrow

demo* p = new (std::nothrow) demo();

在我们加上std::nothrow之前,如果new一个对象时,由于种种原因导致内存申请不到,那么这时候一般来说会抛出异常。

而第二种写法的主要区别在于,当内存无法申请时,不会抛出异常,而是直接将指针置空,这样在一定程度上也提高了程序的运行效率。