Memoria Dinámica
Memoria Dinámica
Memoria Dinámica
Memoria dinámica
Dea Laura Donaji Angel Gonzalez
21310202 2F
Programacion Orientada a Objetos
El problema con la reserva dinámica de memoria es que debe ser liberada de nuevo de
manera manual una vez no se necesita más, ya que en C++ a diferencia de otros lenguajes
de programación no existe una entidad que se encargue de hacer esta liberación de memoria
de manera automática (ejemplo: garbage collector), por tanto es necesario el uso de otros
operadores o funciones que permitan realizar esa liberación de memoria, que en caso de no
hacerse correctamente da lugar al problema de fuga de memoria o "memory leak".
Entonces para liberar la memoria previamente reservada existen los
operadores delete y delete[] que siven para liberar la memoria reservada con los
operadores new y new[] respectivamente.
NOTA: Para evitar el problema de fuga de memoria las nuevas versiones de C++ vienen
con unas clases especiales llamadas Smart Pointers que automatizan el proceso de
liberación de memoria y además brindan métodos para la reserva de memoria sin necesidad
de utilizar directamente los operadores new y new[].
int *ptrEntero;
ptrEntero = new int;
/*(al puntero ptrEntero le asignamos
dinamicamente espacio para contener un valor int)*/
int *ptrEnteroA;
ptrEnteroA = new int(5);
/*(igual que al anterior
pero de paso lo inicializamos en 5)*/
Supongamos ahora que poseemos una clase Punto, podríamos crear objetos dinámicos a
partir de esta clase.
Punto *ptrQ;
ptrQ = new Punto(4,5);
/*
(en la segunda línea le pasamos
además dos parámetros separados por
coma al constructor de Punto)
*/
Hemos estado pidiendo memoria dinámica, una vez utilizada lo correcto sería liberarla antes
de que finalice el programa para esto utilizaremos el operador delete:
delete ptrEntero;
delete ptrEnteroA;
delete ptrQ;
delete [] arreglo;
//Si no usaramos [] no se liberaría el arreglo entero
Bibliografía.
Bibliografía
https://www.codingame.com/playgrounds/51214/manejo-dinamico-de-
memoria-y-polimorfismo-practica-4/asignacion-y-liberacion-dinamica-de-
memoria
https://docencia.ac.upc.edu/FIB/grau/SO2/documents/tema6.pdf
http://www.lcc.uma.es/~lopez/lp2/apuntes/03-punteros/memoria_dinami
ca.pdf
dinamica-new-y-delete.html