在以前的程序中,我使用以下代码来检查内存分配失败,通常没有考虑替代方案:
int* p_int = new int[10];
if(!p_int)
{
// We failed, so exit
return EXIT_FAILURE;
}
此方法也记录在此处。
我在这里找到了语法的参考:
p_int = (nothrow) new int[10];
这表明如果程序员没有nothrow
在 new 中包含“参数”,那么检查nullptr
是无效的?这个对吗?还是它依赖于操作系统?
据我了解,除非由于与此相关的开销,您实际上可以从中恢复,否则放入new
一个块没有什么意义。try-catch
这也是正确的吗?