Delphi - punteros

 
Vista:

punteros

Publicado por Michel (1 intervención) el 14/11/2002 04:21:37
tengo una duda, meti una clase en dos TLIST
cuando borro el primer TLIST libero la memoria de la clase y borro el index del TLIST, el problema viene al borrar la segunda lista, como tienen la misma direccion de memoria me sale error porque esa memoria ya fue borrado en la primera lista.

como puedo hacer para saber si ya fue liberada la memoria?
pus esto pero no me sirve
if Assigned(Lista[1]) then TObjecto(Lista[1]).Free;

pero no me sirve :(
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:punteros

Publicado por Ernesto D'Spirito (706 intervenciones) el 14/11/2002 07:35:27
Si ya has liberado la memoria de un objeto, todas las referencias a ese objeto dejan de ser válidas, por lo que por ejemplo deberías poner las variables que lo apuntan en Nil para saber que ya no apuntan a un objeto válido.

En el caso que planteas, al eliminar un objeto referenciado por un elemento de un TList, deberías eliminar el elemento correspondiente (el que referenciaba al mismo objeto) en el otro TList, o bien asignarle Nil a ese elemento.

Ernesto D'Spirito
http://www.latiumsoftware.com/es
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar