Совсем недавно я переключил язык моего проекта на использование C ++ с C . В C я использовал malloc и после этого проверяю, успешно ли был выполнен malloc, но в C ++ я использую 'new' для выделения памяти и хотел бы знать, как вы обычно проверяете сбой выделения памяти.
Из моего поиска в Google , Я не видел ничего подобного.
char *buf = new (nothrow)char[10];
Я также видел следующее.
try{} catch(bad_alloc&) {}
А как насчет следующего? Я использую некоторые подпрограммы библиотеки Chrome для использования интеллектуальных указателей.
Например, у меня есть следующий код.
scoped_array<char> buf(new char[MAX_BUF]);
Замечательно использовать интеллектуальные указатели, но я просто не уверен, как мне проверить, выделено ли выделение памяти Был успешен. Нужно ли мне разбивать на два отдельных оператора nothrow или try / catch? Как вы обычно выполняете эти проверки в C ++?
Мы будем благодарны за любые советы.