Título: duda sobre operador new Publicado por: <[(x)]> en 19 Mayo 2011, 06:17 am hola viendo un codigo de por ahi me re sulto llamativo el hecho de que se hace esto:
(teniendo una clase definida : tipo) Código
Bien practicamente es eso, el tema es que 'funasd()' es llamada mas de una ves. Y lo segundo es que la funcion untipo.caminaunrato() tira desp de 10 seg un mensaje en pantalla el cual avisa q el tipo deja de caminar. Lo q me llama la atencion es que al llamar varias veces a 'funasd()' los otros 'tipos que caminan' no se terminan/borran, siguen funcionando y tiran el mensaje tranquilamente. Esto es porque al ser un puntero y usar el operador new no rescribe la memoria ya usada y crea un objeto nuevo en otro espacio? En este caso q pasa con esa memoria que fue declarada y se perdio al asignar una nuava direccion al puntero 'untipo'? Espero haberme explicado bien... Título: Re: duda sobre operador new Publicado por: willyhunting en 19 Mayo 2011, 10:22 am En efecto, al reservar memoria dinámicamente utilizando el operador new, ésta no es liberada automáticamente al salir del ámbito de la función.; por lo que al no liberarse explícitamente (usando delete), cada vez que se llema a la función, se reserva más memoria, y tienes como resultado una bonita fuga de memoria que puede hacer que tu ordenador pete o vaya a pedales.
|