Will new operator return NULL?
On a standards-conforming C++ implementation, no. The ordinary form of new
will never return NULL
; if allocation fails, a std::bad_alloc
exception will be thrown (the new (nothrow)
form does not throw exceptions, and will return NULL
if allocation fails).
On some older C++ compilers (especially those that were released before the language was standardized) or in situations where exceptions are explicitly disabled (for example, perhaps some compilers for embedded systems), new
may return NULL
on failure. Compilers that do this do not conform to the C++ standard.
No, new
throws std::bad_alloc
on allocation failure. Use new(std::nothrow) Car
instead if you don't want exceptions.