О реализации стандартов соответствующих требованиям C++, нет. Обычная форма new
никогда не вернется NULL
; если выделение не удастся, будет выбрано исключение std::bad_alloc
(форма new (nothrow)
не генерирует исключений и возвращает NULL
, если распределение не выполнено).
В некоторых старых компиляторах C++ (особенно тех, которые были выпущены до стандартизации языка) или в ситуациях, когда исключения явно отключены (например, возможно, некоторые компиляторы для встроенных систем), new
может вернуть NULL
при сбое. Составители, которые делают это, не соответствуют стандарту C++.
Duplicate of [Будет ли новый возврат NULL в любом случае?] (Http://stackoverflow.com/questions/550451/will-new-return-null-in-any-case) –