Espacios de nombres
Variantes
Acciones

std::bad_alloc

De cppreference.com
< cpp‎ | memory‎ | new
 
 
 
Gestión de memoria dinámica
Punteros inteligentes
(C++11)
(C++11)
(C++11)
(hasta C++17)
(C++11)
Asignadores
Recursos de memoria
Almacenamiento no inicializado
Soporte de recolección de basura
Misceláneos
(C++20)
(C++11)
(C++11)
Biblioteca de C
Administración de memoria de bajo nivel
 
 
Definido en el archivo de encabezado <new>
class bad_alloc;

std::bad_alloc es el tipo de objeto lanzado como una excepción por las funciones de asignación de memoria para reportar una falla al asignar almacenamiento.

cpp/error/exceptionstd-bad alloc-inheritance.svg
Acerca de esta imagen

Inheritance diagram

Contenido

[editar] Funciones miembro

(constructor)
Construye un nuevo objeto bad_alloc.
(función miembro pública)
operator=
Reemplaza al objeto bad_alloc.
(función miembro pública)
what
Devuelve una cadena aclaratoria
(función miembro pública)

std::bad_alloc::bad_alloc

(1)
bad_alloc() throw();
(hasta C++11)
bad_alloc() noexcept;
(desde C++11)
(2)
bad_alloc( const bad_alloc& other ) throw();
(hasta C++11)
bad_alloc( const bad_alloc& other ) noexcept;
(desde C++11)

Construye un nuevo objeto bad_alloc con una cadena de bytes terminada en nulo definida por la implementación, que es accesible a través de what().

1) Constructor por defecto.
2) Constructor de copia. Si tanto *this como other tienen un tipo dinámico std::bad_alloc, entonces std::strcmp(what(), other.what()) == 0. (desde C++11)

Parámetros

other - El otro objeto de excepción del cual copiar.

std::bad_alloc::operator=

bad_alloc& operator=( const bad_alloc& other ) throw();
(hasta C++11)
bad_alloc& operator=( const bad_alloc& other ) noexcept;
(desde C++11)

Asigna el contenido de other. Si tanto *this como other tienen un tipo dinámico std::bad_alloc, entonces std::strcmp(what(), other.what()) == 0 después de la asignación. (desde C++11)

Parámetros

other - El otro objeto de excepción del cual asignar.

Valor de retorno

*this

std::bad_alloc::what

virtual const char* what() const throw();
(hasta C++11)
virtual const char* what() const noexcept;
(desde C++11)

Devuelve una cadena aclaratoria.

Parámetros

(Ninguno)

Valor de retorno

Puntero a una cadena terminada en nulo con información aclaratoria.

Heredado de std::exception

Funciones miembro

[virtual]
Destruye el objeto de excepción.
(función miembro virtual pública de std::exception) [editar]
[virtual]
Devuelve una cadena aclaratoria.
(función miembro virtual pública de std::exception) [editar]

Heredado de std::exception

Funciones miembro

[virtual]
Destruye el objeto de excepción.
(función miembro virtual pública de std::exception) [editar]
[virtual]
Devuelve una cadena aclaratoria.
(función miembro virtual pública de std::exception) [editar]

[editar] Ejemplo

#include <iostream>
#include <new>
 
int main()
{
    try {
        while (true) {
            new int[100000000ul];
        }
    } catch (const std::bad_alloc& e) {
        std::cout << "Falla al asignar memoria: " << e.what() << '\n';
    }
}

Posible salida:

Falla al asignar memoria: std::bad_alloc

[editar] Véase también

Funciones de asignación.
(función) [editar]