Como verificar falhas de alocação de memória com o novo operado
Recentemente, mudei a linguagem do meu projeto para usar C ++ de C. Com C, usei malloc e depois verifiquei se malloc foi bem-sucedido, mas com C ++, uso 'new' para alocar memória e gostaria de saber como você normalmente verificaria a falha de alocação de memóri
Na minha pesquisa no google, vi nothrow como o seguinte.
char *buf = new (nothrow)char[10];
Vi também o seguinte.
try{} catch(bad_alloc&) {}
Mas e quanto a seguir? Estou usando algumas rotinas da biblioteca chrome para usar ponteiros inteligente
or exemplo, eu tenho o código da seguinte maneir
scoped_array<char> buf(new char[MAX_BUF]);
É ótimo usar ponteiros inteligentes, mas não tenho certeza de como devo verificar se a alocação de memória foi bem-sucedida. Preciso dividir em duas instruções separadas com nothrow ou try / catch? Como você normalmente faz essas verificações em C +
Qualquer conselho será apreciad