The class describes an exception thrown to indicate that an allocation request did not succeed.
class bad_alloc : public exception {
bad_alloc(const char *_Message): exception(_Message) {}
bad_alloc(): exception("bad allocation", 1) {}
virtual ~bad_alloc() {}
};
An instance of bad_alloc can be constructed from a message or from a message string with no memory allocation.
The value returned by what is an implementation-defined C string. None of the member functions throw any exceptions.
Header: <new>
// bad_alloc.cpp
// compile with: /EHsc
#include<new>
#include<iostream>
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;
}
}
Header: <new>
Reference
exception Class
Thread Safety in the Standard C++ Library
Other Resources
<new> Members