Pregunta tonta sobre TStringList y liberar recursos
Hola si yo escribo lo siguiente:
Al entrar en la rutina se crea el StringList, ¿pero cuando se sale de la rutina, se liberan los recursos?, o ¿debería colocar al final MiStringList.Free? Saludos /BlueIcaro |
no es pregunta tonta, mi amigo,
y bueno, si no liberas la memoria que ocupas creando objetos por tu cuenta, está no será liberada en automático. Lo ideal es que ocupes el método free. Suerte |
Hola,
Si no estoy equivocado, y, tal como planteas el asunto, la variable sería liberada al salir del procedimiento, puesto que se trata de una variable local que no tiene vida más allá del mismo. Sin embargo, lo normal es liberar aquellos recursos que ocupemos, e incluso ir más allá, es decir, asegurarnos de que los liberamos, por ejemplo:
De este modo, aun en caso de excepción, nos aseguramos de que la variable "t" es creada, usada y liberada antes de salir del procedimiento. |
Cita:
La variable MiStringList no es mas que un puntero. El objeto se crea (TStringList.Create) y su posición en memoria se guarda dentro de la variable MiStringList. Es verdad que la variable MiStringList se destruye al salir del procedimiento, pero el objeto al que apunta sigue tan tranquilo en memoria. |
Hola,
Muy buen apunte Domingo. A ver si no se me olvida. Muchas gracias. :) PD. Maldita sea, me he vuelto a equivocar... :D :D |
Hola,
Por otro lado... debí suponerlo (je, je, je, je), porque, ¿para qué sino la insistencia en liberar el objeto? No sería necesario, si no fuera necesario... :D :D :D PD. Esto lo escribo para no olvidarme. :D |
Cita:
|
Hola,
Cita:
|
La franja horaria es GMT +2. Ahora son las 16:10:13. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi