C/C++:关于new申请大内存后抛出异常

(环境:Win7 64位, C++ builder 2010)

C/C++中的操作符new在申请大内存失败后,默认会抛出std::bad_alloc异常,可使用try...catch捕获。示例代码如下:

int _tmain(int argc, _TCHAR* argv[])
{
    try
    {
        char *p = new char[1200000000];
    }
    catch (std::bad_alloc &e)
    {
        printf("%s\n", e.what());
    }
    catch (...)
    {
        printf("catch \n");
    }
 
    system("pause");
    
    return 0;
}


你可能感兴趣的:(C/C++:关于new申请大内存后抛出异常)