Demostración de new lanzando bad_alloc cuando la memoria no se asigna

#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

¿Has encontrado algún error? ¿Tienes la solución? Dejame tu correción ;-)

Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por personas con únicamente conocimiento básico del lenguaje, no de programación.

Otro punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:

  • Si es lenguaje C [c]Código en C[/c]
  • Si es lenguaje Pascal [pascal]Aquí dentro el código de Pascal[/pascal].

De esta manera el código coloreas el código.

Otro punto importante para muchos que sienten que se les ignora: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el con lo siguiente:

Me reservo el derecho de alterar, publicar o no los comentarios as´ como cambiar mis condiciones en el momento que así lo requiera.

¿estas de acuerdo? entonces adelante que ya te he quitado bastante tiempo leyendo esta basura de advertencias :)