Ya que se habla de Assigned, tambien es necesario hablar de FreeAndNil(p) de esta forma, primero se cambia el valor de p a nulo, y despues se libera la memoria de "p". Si se produjera una excepción al tiempo de liberar el objeto "p", la variable ya apunta a nulo, por tanto, se puede seguir usando sin problemas; aunque obviamente habría que estudiar por qué no se liberó correctamente y corregirlo.
En caso de usar Arrays, GetMem, etc, FreeAndNil no puede usarse, pero siempre está el recurso de hacer un dispose(p) y seguidamente la asignación p:= nil, para asegurarnos.
Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
|