We recommend using Visual Studio 2017

bad_alloc Class


The latest version of this topic can be found at bad_alloc Class.

The class describes an exception thrown to indicate that an allocation request did not succeed.

class bad_alloc : public exception {  
virtual ~bad_alloc();


The value returned by what is an implementation-defined C string. None of the member functions throw any exceptions.

Header: <new>

Namespace: std

// bad_alloc.cpp  
// compile with: /EHsc  
using namespace std;  
int main() {  
   char* ptr;  
   try {  
      ptr = new char[(~unsigned int((int)0)/2) - 1];  
      delete[] ptr;  
   catch( bad_alloc &ba) {  
      cout << ba.what( ) << endl;  

bad allocation  

Header: <new>

exception Class
Thread Safety in the C++ Standard Library