如果我使用foo = new int [5];并且如果分配失败,则抛出异常,我的问题是如何处理它或如果分配失败如何获得0.以及它依赖于C++版本..
使用:
foo = new(std::nothrow) int[5];
Run Code Online (Sandbox Code Playgroud)
它将返回NULL错误而不是抛出.您可能需要添加#include <new>以获取定义std::nothrow.
关于版本依赖,它是相当古老的,我认为从C++ 98.如果你碰巧有一个较旧的编译器,比如VisualStudio 6或Turbo C,那么分配失败总是会返回NULL而不是首先抛出,因为它们std::bad_alloc同时std::nothrow被引入.
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |