new является более безопасным способом выделения памяти, чем malloc, по следующим причинам:
- Проверка совместимости типов. otvet.mail.ru При использовании new проверяется совместимость типов при присваивании возвращённого указателя и производится автоматический вызов конструкторов при создании объектов или массивов объектов. otvet.mail.ru
- Автоматическая инициализация памяти. otvet.mail.ru Оператор new выделяет память и автоматически инициализирует её значением по умолчанию для данного типа данных. otvet.mail.ru
- Генерация исключения при неудачном выделении памяти. otvet.mail.ru www.cyberforum.ru При использовании malloc при неудачном выделении памяти возвращается нулевой указатель, а new генерирует исключение std::bad_alloc. stackoverflow.com www.cyberforum.ru
Кроме того, в случае возникновения исключения во время инициализации объекта сначала выполняется возврат выделенной памяти, а затем начинается обработка исключения. www.rsdn.org