Espacios de nombres
Variantes
Acciones

Gestión de memoria dinámica

De cppreference.com
< cpp
 
 
Biblioteca de servicios
 
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)
 

Contenido

[editar] Punteros inteligentes

Los punteros inteligentes permiten la gestión del tiempo de vida de los objetos de forma automática y segura frente a excepciones.

Definido en el archivo de encabezado <memory>
Categorías de punteros
Puntero inteligente con semántica de posesión de objeto única.
(plantilla de clase) [editar]
Puntero inteligente con semántica de posesión de objeto compartida.
(plantilla de clase) [editar]
(C++11)
Referencia débil a un objeto gestionado por std::shared_ptr.
(plantilla de clase) [editar]
(eliminado en C++17)
Puntero inteligente con semántica de propiedad de objetos estricta.
(plantilla de clase) [editar]
Clases auxiliares
Proporciona un orden de tipo mixto basado en propietario de los punteros compartidos y débiles.
(plantilla de clase) [editar]
Permite a un objeto crear un puntero compartido (shared_ptr) refiriéndose a sí mismo.
(plantilla de clase) [editar]
Excepción lanzada cuando se accede a un puntero débil (weak_ptr) que se refiere a un objeto que ya ha sido destruido.
(clase) [editar]
Eliminador por defecto para un puntero único (unique_ptr).
(plantilla de clase) [editar]
Adaptadores de punteros inteligentes
(C++23)
Interopera con establecedores de punteros externos y restablece un puntero inteligente en la destrucción.
(plantilla de clase) [editar]
(C++23)
Crea un objeto out_ptr_t con un puntero inteligente asociado y los argumentos de restablecimiento.
(plantilla de función) [editar]
Interopera con establecedores de punteros externos, obtiene el valor del puntero inicial de un puntero inteligente y lo restablece en la destrucción.
(plantilla de clase) [editar]
(C++23)
Crea un objeto inout_ptr_t con un puntero inteligente asociado y los argumentos de restablecimiento.
(plantilla de función) [editar]

[editar] Asignadores de memoria

Los asignadores son plantillas de clase que encapsulan la estrategia de asignación de memoria. Esto permite a los contenedores genéricos separar la gestión de memoria de los datos mismos.

Definido en el archivo de encabezado <memory>
El asignador de memoria por defecto.
(plantilla de clase) [editar]
Proporciona información sobre los tipos de asignadores.
(plantilla de clase) [editar]
Registra la dirección y el tamaño real del almacenamiento asignado por allocate_at_least.
(plantilla de clase) [editar]
Asigna almacenamiento al menos tan grande como el tamaño solicitado a trav��s de un asignador de memoria.
(plantilla de función) [editar]
Tipo de etiqueta utilizado para seleccionar sobrecargas de constructores conscientes de asignador.
(clase) [editar]
Un objeto de tipo std::allocator_arg_t utilizado para seleccionar constructores conscientes de asignador.
(constante) [editar]
Comprueba si el tipo especificado admite construcción con uso de asignador.
(plantilla de clase) [editar]
Prepara la lista de argumentos que coincide con el tipo de construcción con uso de asignador requerida por el tipo dado.
(plantilla de función) [editar]
Crea un objeto del tipo dado mediante la construcción con uso de asignador.
(plantilla de función) [editar]
Crea un objeto del tipo dado en la ubicación de memoria especificada por medio de la construcción con uso de asignador.
(plantilla de función) [editar]
Definido en el archivo de encabezado <scoped_allocator>
Implementa un asignador multinivel para contenedores multinivel.
(plantilla de clase) [editar]
Definido en el archivo de encabezado <memory_resource>
Definido en el espacio de nombres std::pmr
Un asignador que admite polimorfismo en tiempo de ejecución basado en el recurso de memoria std::memory_resource con el que se construye.
(plantilla de clase) [editar]

[editar] Recursos de memoria

Los recursos de memoria implementan estrategias de asignación de memoria que pueden usarse por std::pmr::polymorphic_allocator

Definido en el archivo de encabezado <memory_resource>
Definido en el espacio de nombres pmr
Una interfaz abstracta para clases que encapsulan recursos de memoria.
(clase) [editar]
Devuelve un recurso de memoria std::pmr::memory_resource estático a lo largo del programa que utiliza los operadores globales operator new y operator delete para asignar y desasignar memoria.
(función) [editar]
Devuelve un recurso de memoria std::pmr::memory_resource estático que no realiza asignaciones.
(función) [editar]
Obtiene el recurso de memoria std::pmr::memory_resource por defecto.
(función) [editar]
Establece el recurso de memoria std::pmr::memory_resource por defecto.
(función) [editar]
Un conjunto de opciones de constructor para reservas de recursos.
(clase) [editar]
Un recurso de memoria std::pmr::memory_resource seguro contra hilos para gestionar asignaciones en reservas con diferentes tamaños de bloques.
(clase) [editar]
Un recurso de memoria std::pmr::memory_resource que no es seguro contra hilos para gestionar asignaciones en reservas con diferentes tamaños de bloques.
(clase) [editar]
Un recurso de memoria std::pmr::memory_resource de propósito especial, que libera la memoria asignada solamente cuando el recurso se destruye.
(clase) [editar]

[editar] Almacenamiento no inicializado

Se proporcionan varias utilerías para crear y acceder a almacenamiento sin formato.

Definido en el archivo de encabezado <memory>
(en desuso en C++17)(eliminado en C++20)
Un iterador que permite a los algoritmos estándar almacenar los resultados en memoria sin inicializar.
(plantilla de clase) [editar]
(en desuso en C++17)(eliminado en C++20)
Obtiene almacenamiento sin inicializar.
(plantilla de función) [editar]
(en desuso en C++17)(eliminado en C++20)
Libera almacenamiento sin inicializar.
(plantilla de función) [editar]

[editar] Algoritmos de memoria no inicializada

Definido en el archivo de encabezado <memory>
Copia un rango de objetos a una zona de memoria sin inicializar.
(plantilla de función) [editar]
Copia un número de objetos a un área de memoria sin inicializar.
(plantilla de función) [editar]
Copia un objeto a una zona de memoria sin inicializar, definido por un rango.
(plantilla de función) [editar]
Copia un objeto a una zona de memoria sin inicializar, definido por un inicio y una cuenta.
(plantilla de función) [editar]
Mueve un rango de objetos a un área de memoria sin inicializar.
(niebloid) [editar]
Mueve un número de objetos a un área de memoria sin inicializar.
(niebloid) [editar]
Construye objetos mediante la inicialización por defecto en un área de memoria sin inicializar, definido por un rango.
(plantilla de función) [editar]
Construye objetos mediante la inicialización por defecto en un área de memoria sin inicializar, definido por un inicio y una cuenta.
(plantilla de función) [editar]
Construye objetos mediante la inicialización de un valor en un área de memoria sin inicializar, definido por un rango.
(niebloid) [editar]
Construye objetos mediante la inicialización de un valor en un área de memoria sin inicializar, definido por un inicio y una cuenta.
(niebloid) [editar]
Destruye un objeto en una dirección dada.
(plantilla de función) [editar]
(C++17)
Destruye un rango de objetos.
(plantilla de función) [editar]
(C++17)
Destruye un número de objetos en un rango.
(plantilla de función) [editar]
Crea un objeto en una dirección dada
(plantilla de función) [editar]

[editar] Algoritmos restringidos de memoria no inicializada (C++20)

C++20 proporciona algoritmos de memoria sin inicializar restringidos que aceptan argumentos de rango o pares iterador-centinela.

Definido en el archivo de encabezado <memory>
Definido en el espacio de nombres std::ranges
Especifica que algunas operaciones en iteradores, centinelas y rangos no lanzan excepciones.
(concepto solo de exposición)
Copia un rango de objetos a un área de memoria sin inicializar.
(niebloid) [editar]
Copia un número de objetos a un área de memoria sin inicializar.
(niebloid) [editar]
Copia un objeto en un área de memoria sin inicializar, definido por un rango.
(niebloid) [editar]
Copia un objeto a un área de memoria sin inicializar, definido por un inicio y una cuenta.
(niebloid) [editar]
Mueve un rango de objetos a un área de memoria sin inicializar.
(niebloid) [editar]
Mueve un número de objetos a un área de memoria sin inicializar.
(niebloid) [editar]
Construye objetos mediante la

inicialización por defecto en un área de memoria sin inicializar, definido por un rango.
(niebloid) [editar]


(niebloid) [editar]
Construye objetos mediante la inicialización de un valor en un área de memoria sin inicializar, definido por un rango.
(niebloid) [editar]
Construye objetos mediante la inicialización de un valor en un área de memoria sin inicializar, definido por un inicio y una cuenta.
(niebloid) [editar]
Destruye un objeto en una dirección dada.
(niebloid) [editar]
Destruye un rango de objetos.
(niebloid) [editar]
Destruye un número de objetos en un rango.
(niebloid) [editar]
Crea un objeto en una dirección dada
(niebloid) [editar]

[editar] Apoyo de recolección de basura

Definido en el archivo de encabezado <memory>
(C++11)(eliminado en C++23)
Declara que un objeto no puede ser reciclado.
(función) [editar]
(C++11)(eliminado en C++23)
Declara que un objeto puede ser reciclado.
(plantilla de función) [editar]
(C++11)(eliminado en C++23)
Declara que una zona de memoria no contiene punteros rastreables.
(función) [editar]
(C++11)(eliminado en C++23)
Cancela el efecto de std::declare_no_pointers.
(función) [editar]
(C++11)(eliminado en C++23)
Lista los modelos de seguridad de puntero.
(clase) [editar]
(C++11)(eliminado en C++23)
Devuelve el modelo actual de seguridad de puntero.
(función) [editar]

[editar] Misceláneos

Definido en el archivo de encabezado <memory>
Proporciona información sobre tipos similares a punteros.
(plantilla de clase) [editar]
Obtiene un puntero sin formato de un tipo similar a un puntero.
(plantilla de función) [editar]
(C++11)
Obtiene la dirección real de un objeto, incluso si el operador & está sobrecargado.
(plantilla de función) [editar]
(C++11)
Alinea un puntero en un búfer.
(función) [editar]
Informa al compilador que un puntero está alineado.
(plantilla de función) [editar]

[editar] Gestión de memoria estilo C

Incluye, p. ej., std::malloc, std::free

[editar] Gestión de memoria de bajo nivel

Incluye, p. ej., operator new , operator delete , std::set_new_handler