Espacios de nombres
Variantes

std::bad_array_new_length

De cppreference.com
< cpp | memory | new
 
 
Biblioteca de servicios
Apoyo del lenguaje
Apoyo de tipos (tipos básicos, RTTI)
Macros de prueba de característica de la biblioteca (C++20)
Servicios de programa
Funciones variádicas
Apoyo de corrutinas (C++20)
Apoyo de contratos (C++26)
Comparación de tres vías (C++20)
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

 
Gestión de memoria dinámica
Punteros inteligentes
(C++11)
(C++11)
(C++11)
(hasta C++17)
(C++11)
(C++23)
Asignadores de memoria
Recursos de memoria
Almacenamiento no inicializado
Algoritmos de memoria no inicializada
Algoritmos restringidos de memoria no inicializada
Apoyo para recolección de basura
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
Misceláneos
(C++20)
(C++11)
(C++11)
 
 
 
Definido en el archivo de encabezado <new>
class bad_array_new_length;
(desde C++11)

std::bad_array_new_length es el tipo del objeto lanzado como una excepción por las expresiones new para reportar longitudes de arrays inválidas si

1) la longitud del array es negativa;
2) el tamaño total del nuevo array excedería el valor máximo definido por la implementación;
3) el número de cláusulas de inicializadores excede el número de elementos a inicializar.

Solamente la primera dimensión del array puede generar esta excepción; otras dimensiones distintas de la primera son expresiones constantes y se comprueban en tiempo de compilación.

cpp/error/exceptioncpp/memory/new/bad alloc

Inheritance diagram

Funciones miembro

Construye el objeto bad_array_new_length.
(función miembro pública)

Heredado de std::bad_alloc

Heredado de std::exception

Funciones miembro

[virtual]
Destruye el objeto 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]

Notas

La redefinición de la función miembro virtual what() puede proporcionarse, pero no se requiere.

Ejemplo

Tres condiciones donde std::bad_array_new_length debería lanzarse:

#include <iostream>
#include <new>
#include <climits>

int main()
{
    int negativo = -1;
    int chico = 1;
    int grande = INT_MAX;
    try {
        new int[negativo];            // tamaño negativo
        new int[chico]{1,2,3};        // demasiados inicializadores
        new int[grande][1000000];     // demasiado grande
    } catch(const std::bad_array_new_length &e) {
        std::cout << e.what() << '\n';
    }
}

Posible salida:

std::bad_array_new_length

Véase también

Funciones de asignación.
(función) [editar]
Excepción que se produce cuando la asignación de memoria falla.
(clase) [editar]
Morty Proxy This is a proxified and sanitized view of the page, visit original site.