Preguntas etiquetadas 'asignación de memoria dinámica'

La asignación de memoria dinámica, generalmente en el contexto de idiomas sin recolección de basura o recuento de referencias obligatorio o automático, se refiere a un proceso o solicita a un sistema operativo un bloque de memoria con un tamaño variable.
25
respuestas

¿Qué y dónde están la pila y el montón?

Los libros en lenguajes de programación explican que los tipos de valor se crean en la pila, y los tipos de referencia se crean en el montón, sin explicar cuáles son estas dos cosas. No he leído una explicación clara para esto. Entiendo lo que es una pila. Pero, dónde y qué son (físicamente en ...
puesta el 17 sep. '08 a las 7:18
9
respuestas

La diferencia entre la asignación de memoria estática y la asignación de memoria dinámica

Me gustaría saber cuál es la diferencia entre la asignación de memoria estática y la asignación de memoria dinámica. ¿Podría explicar esto con algún ejemplo?
set 05 dic '11 a las 15:30
4
respuestas

¿Son nuevas y eliminadas todavía útiles en C ++ 14?

Dada la presencia de make_unique y make_shared, así como la eliminación automática de unique_ptr y shared_ptr por los destructores, ¿cuáles son las situaciones (además de admitir código obsoleto) para usar nuevo y eliminar en C ++ 14?
establecido el 10 de junio de 15 a 20:12
11
respuestas

¿Lista enlazada efectiva en C ++?

Este documento dice que std :: list no es eficiente: std :: list es una clase muy ineficiente que rara vez es útil. Realiza la asignación de pilas para cada elemento insertado en ella, por lo tanto, tiene un coeficiente constante extremadamente alto ...
Set 16 de agosto '17 a las 18:44
5
respuestas

¿Se llama al destructor cuando un objeto sale del alcance?

Por ejemplo: int main () {Foo * leedle = new Foo (); devuelve 0; } class Foo {private: somePointer * bar; público: Foo (); ~ Foo (); }; Foo :: ~ Foo () {eliminar barra; } Si el destructor será llamado implícitamente por el compilador o si ...
se establece el 17 de julio de 13 a las 17:45
4
respuestas

¿Por qué mi programa se bloquea cuando incremento un puntero y lo elimino?

Resolví algunos ejercicios de programación cuando me di cuenta de que tenía un gran malentendido con respecto a los indicadores. Por favor, alguien puede explicar la razón por la que este código se bloquea en C ++. #include <iostream> int main () {...
fijado el 16 de diciembre '16 a las 15:08
5
respuestas

¿Cuándo y por qué usar malloc?

Bueno, no puedo averiguar cuándo y por qué asignar memoria con malloc. Aquí está mi código: #include <stdlib.h> int main (int argc, const char * argv []) {typedef struct {char * name; char * sexo; edad int estudiante // Ahora c ...
fijado el 10 de enero '12 a las 11:40
2
respuestas

Nuevo operador para asignar memoria en el montón

Vi la firma del nuevo operador. Es decir: void * operator new (std :: size_t size) throw (std :: bad_alloc); Pero cuando usamos esta declaración, nunca usamos un reparto. es decir, int * arr = new int; Entonces, ¿cómo C ++ transforma el puntero ...
set 09 feb '11 a las 9:02
6
respuestas

Idioma Pimpl sin utilizar asignación de memoria dinámica

queremos usar el lenguaje pimpl para algunas partes de nuestro proyecto. Estas partes del proyecto también son partes donde la asignación de memoria dinámica está prohibida y esta solución no está bajo nuestro control. Así que pregunto si hay una limpia y ...
set 07 feb '11 a las 16:38
4
respuestas

¿Por qué el entorno de ejecución no puede aplicar eliminar o eliminar [] en lugar de programador?

Leí que se necesita el operador eliminar [], porque el tiempo de ejecución no almacena información sobre si un bloque seleccionado es una matriz de objetos que requieren o no llamadas destructoras, pero en realidad almacena información sobre dónde está en la memoria ...
set 06 dic '11 a las 21:46
3
respuestas

¿Por qué usar _mm_malloc? (a diferencia de _aligned_malloc, alligned_alloc o posix_memalign)

Existen varias opciones para obtener un bloque de memoria incorporado, pero son muy similares, y el problema básicamente se reduce a qué idioma es el estándar y la plataforma a la que se dirige. C11 void * align_alloc (alineación size_t, size_t size) PO ...
set 16 de septiembre '15 a las 18:30
4
respuestas

Cómo asignar memoria dinámicamente usando compilaciones y llamadas de sistema en Linux

Estoy buscando buenos ejemplos de código para asignar memoria dinámica usando lenguaje ensamblador en Linux y usando llamadas al sistema en lugar de malloc y amigos. ¿Cuáles son algunas de las formas más simples pero efectivas de hacer esto? En la computadora ...
establecido en mayo 06 '10 a las 17:54
5
respuestas

Mezclando el operador nuevo [] y colocando uno nuevo con la eliminación habitual []

Solo por curiosidad, ¿es legal? X * p = static_cast <X *> (operador nuevo [] (3 * sizeof (X))); nuevo (p + 0) X (); nuevo (p + 1) x (); nuevo (p + 2) x (); borrar [] p; // ¿Puedo usar delete [] aquí? ¿O es un comportamiento indefinido? Del mismo modo: ...
establecido el 27 de junio de 2011 a las 19:02
4
respuestas

Asignación de memoria dinámica para matrices de punteros

Estoy intentando escribir un programa que lee en una secuencia de líneas de un archivo de texto y las almacena en una matriz de cadenas, asignando dinámicamente la memoria para cada elemento. Mi plan era almacenar cada línea en una matriz con la ayuda de un decreto ...
Set 28 de septiembre '13 a las 18:40
3
respuestas

Comprender el comportamiento del nuevo manejador.

Leí "Effective C ++ 55" de Scott Meyers y formulo la pregunta de la cláusula 49: Cuando un operador nuevo no puede completar una solicitud de memoria, llama a un nuevo controlador hasta que encuentra suficiente memoria. Una función newhandler bien diseñada debería realizar una ...
set 16 de febrero '15 a las 15:33