可能重复:
在任何情况下new都会返回NULL吗?
说我有一个类Car,我创建一个对象
Car *newcar = new Car();
if(newcar==NULL) //is it valid to check for NULL if new runs out of memory
{
}
Run Code Online (Sandbox Code Playgroud)
Jam*_*lis 42
在符合标准的C++实现上,没有.普通的形式new永远不会回归NULL; 如果分配失败,std::bad_alloc将抛出异常(new (nothrow)表单不会抛出异常,并且NULL如果分配失败将返回).
在一些较旧的C++编译器(特别是那些在语言标准化之前发布的编译器)或者在明确禁用异常的情况下(例如,某些嵌入式系统的编译器),new可能会NULL在失败时返回.执行此操作的编译器不符合C++标准.