
C++ Perdida de memoria Memory leak Recolección de basura
Publicado por jose_luis (9 intervenciones) el 11/04/2017 21:23:11
Buenas tardes. Deseo que me intentéis sacar de dudas. Dispongo como ejemplo las siguientes instrucciones:
int *p;
p= new int;
*p=54;
p= new int; // Con esta asignación perdemos el enlace con el anterior int con la consiguiente
// pérdida de memoria.
*p=74;
delete p;
Evidentemente se me queda "colgado" un espacio de memoria que se representa por la primera asignación al no realizarle un delete y después continuar.
La duda es que una vez realizado esto, ¿ se podrá de forma automática capturar la memoria perdida al estar dentro la función principal int main(){ /*aquí*/ } y al terminar de realizar el ejecutable recuperarla ?
¿Si realizara un bucle (muy brutal, con datos de gran tamaño) casi infinito con lo anterior podría colapsar la memoria del ordenador ?
int *p;
p= new int;
*p=54;
p= new int; // Con esta asignación perdemos el enlace con el anterior int con la consiguiente
// pérdida de memoria.
*p=74;
delete p;
Evidentemente se me queda "colgado" un espacio de memoria que se representa por la primera asignación al no realizarle un delete y después continuar.
La duda es que una vez realizado esto, ¿ se podrá de forma automática capturar la memoria perdida al estar dentro la función principal int main(){ /*aquí*/ } y al terminar de realizar el ejecutable recuperarla ?
¿Si realizara un bucle (muy brutal, con datos de gran tamaño) casi infinito con lo anterior podría colapsar la memoria del ordenador ?
Valora esta pregunta


0