编程的时候必须考虑到内存分配失败的情形。
C++ 有两种解决办法:
1. 捕获异常std::bad_alloc
try
{
char* p = new [10000000000];
}
catch(std::bad_alloc)
{
assert(0);
}
2. 使用set_new_handler()函数(声明于头文件中)
void my_handler(void)
{
cerr<<"fail to alloc memory"< abort();
}
set_new_handler(my_handler);
char* p = new [10000000000];
...
方法2优先于方法1,并且用起来比try块简单
阅读(694) | 评论(0) | 转发(0) |