Demostración de new lanzando bad_alloc cuando la memoria no se asigna
c:
#include <iostream>
using std::cout;
using std::endl;
#include <new>
using std::bad_alloc;
int main()
{
double *ptr[ 50 ];
try {
for ( int i = 0; i < 50; i++ ) {
ptr[ i ] = new double[ 5000000 ];
cout << "5000000 doubles asignados en ptr[ "
<< i << " ]\n";
} // fin de for
} // fin de try
catch ( bad_alloc exception ) {
cout << "Ocurrio una excepcion: "
<< exception.what() << endl;
} // fin de catch
return 0;
} // fin de la función main
using std::cout;
using std::endl;
#include <new>
using std::bad_alloc;
int main()
{
double *ptr[ 50 ];
try {
for ( int i = 0; i < 50; i++ ) {
ptr[ i ] = new double[ 5000000 ];
cout << "5000000 doubles asignados en ptr[ "
<< i << " ]\n";
} // fin de for
} // fin de try
catch ( bad_alloc exception ) {
cout << "Ocurrio una excepcion: "
<< exception.what() << endl;
} // fin de catch
return 0;
} // fin de la función main