最近我把项目的语言从C转换为C++。在使用C时,我使用malloc函数分配内存并检查是否分配成功,但在使用C++时,我使用“new”关键字来分配内存,我想知道您通常如何检查内存分配失败。
在我的谷歌搜索中,我看到了以下的nothrow。
char *buf = new (nothrow)char[10];
我也看到了以下内容。
try{} catch(bad_alloc&) {}
但以下代码怎么办?我正在使用chrome库例程来使用智能指针。
例如,我的代码如下所示。
scoped_array<char> buf(new char[MAX_BUF]);
使用智能指针非常好,但我不确定应该如何检查内存分配是否成功。 我需要使用nothrow或try/catch将其拆分为两个单独的语句吗? 在C++中,通常如何进行这些检查?
非常感谢您的任何建议。