Si tengo la siguiente declaración: la memoriaC++ - La asignación de memoria en el montón usando "nueva"
int *x = new int;
En este caso, he asignado dinámicamente en el montón. En otras palabras, ahora tengo una dirección de memoria reserved
para un objeto int
.
decir después de eso que me hizo el siguiente:
delete x;
Lo que significa que freed up
la dirección de memoria en el montón.
decir después de eso me di el siguiente nuevo:
int *x = new int;
Will x
punto a la dirección de memoria de edad misma se señaló en el montón antes de que se haya eliminado?
¿Qué pasa si hice esto antes delete
:
x = NULL;
Y, a continuación, hizo esto:
int *x = new int;
Will x
punto a AA dirección de memoria en el montón otra de ¿el viejo?
Gracias.
Con solo establecer un puntero a 'NULL', usted está no borrarlo Si luego hace 'new int', la memoria anterior seguirá en uso (sin un puntero, es una pérdida de memoria) y, por supuesto,' new' * siempre * apunta a una * nueva * dirección - de ahí el nombre. –