FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Como dije hace cuatro años, es difícil responder. Y también, asignar "nil" no libera memoria. El siguiente código no libera memoria:
Es más, te dará un error puesto que estás intentando llamar a un método de un objeto que no existe (el objeto nil no existe). El código debería ser este:
O lo que es lo mismo:
|
#2
|
||||
|
||||
Si invocas a free sobre un objeto que es nil no se eleva una excepción
|
#3
|
||||
|
||||
¿Seguro? Me parece recordar que sí provoca un error de ejecución por memoria re-liberada o algo así. Aunque puede que esto sea algo exclusivo de Free Pascal.
|
#4
|
||||
|
||||
Totalmente seguro
El metodo free esta implementado asi (o muy similar, sacando los IFDEF segun la plataforma)
Esto es totalmente seguro, jamas te va a dar error:
Ahora, el problema es que el destructor no deja la instancia "limpia" (no asigna nil cuando termina, no deja la memoria en 0000) Esto si te eleva una excepcion AcessViolation:
|
#5
|
||||
|
||||
Ok. Ahora sí me quedó claro. Será entonces eso, que no "limpio" la variable de referencia. Gracias.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Libros de Consulta sobre Delphi | sebaelp | Varios | 2 | 20-03-2012 18:08:08 |
llamar un Delphi web services desde ASP | SpyO_O | .NET | 4 | 25-09-2008 15:46:44 |
Delphi 2006 con Sql Server Reporting Services | dieleo | Impresión | 0 | 12-08-2006 18:23:21 |
parámetros en Delphi 7 y web services hechos con VS2005 | jdiazan | .NET | 0 | 27-01-2006 11:19:46 |
Consulta Sobre Delphi y Access | herodes | Varios | 1 | 13-12-2005 21:41:47 |
|