2012-09-24 75 views

回答

1

Balamurugan,

我今天下午有同樣的疑問,並沒有在這裏看到相關的東西。 所以我去了CPlusPlus並把try catch放在一個無限循環裏面,然後工作。在VS C++ 2010 Express下。

下面我的代碼:

// bad_alloc standard exception 
#include <iostream> 
#include <exception> 
using namespace std; 

int main() 
{ 
    unsigned int count=0; 
    while (1) 
    { 
    count++; 
    try 
    { 
     int* myarray= new int[1000000]; 
    } 
    catch (exception& e) 
    { 
    cout << "Standard exception: " << e.what() << endl; 
    cout << "\nAborting after "<< count << " loops"; 
    return -1; 
    } 
    } 
cout<<"\nNormal finishing..."; 
return 0; 
} 

在我的情況下,經過523圈被抓住了。我會更好,如果我知道一個設置限制堆Fisical記憶,如果我發現我會讓你知道。