¿Cómo funcionan los arrays dinámicos?

Tengo 2 preguntas que espero que me sepas responder :)
¿1 - Como trata los arrays dinámicos el delphi?, es decir, ¿cuándo reserva memoria para las filas/columnas del array (mediante setLenght) como lo hace? ¿Las guarda como listas dinámicas o reserva memoria en la heap?
¿2 - El delphi tiene recolector de memoria?, he leído que para destruir la matriz solo hay que asignarle el valor nil, ¿entonces qué pasa con la memoria a la que apuntaba?, sobretodo si la matriz contenía algún objeto que haya que destruir...

3 respuestas

Respuesta
1
Pues tratare de respondertelo, en 5 minutos :)
1. Efectivamente los guarda como listas dinámicas, crea según las instrucciones y la secuencia de creación que tu des a tu programa (o mejor dicho como al usuario se le antoje).
2. En la segunda parte, no, si tiene un recolector de memoria, pero no basta con asignarle el valor nil, esto lo que hace es "ignorar el valor del puntero actual" y "no a puntar a nada", tienes que destruirlo explícitamente.
Te sugiero, que investigues algunas funciones standard para el tratamiento de memoria, hay algunas, por ejemplo que "limpian" toda la memoria que no se utiliza lo mismo que hace el sistema operativo cuando le das Ctrl+Alt+Sup... También que veas algo sobre tratamiento de clases, creación y destrucción, a menudo esto suele ser más eficiente que el solo utilizar Arrays.
Bueno, espero haberte podido ayudar. En realidad fueron 4min 1/2.
Respuesta
1
La respuesta a tu primer pregunta la verdad que no sé. COn respecto a la segunda no alxanza con asignar el valor nil a las variables para liberar memoria, tienes que usar Free.
Suerte
Respuesta
1
El Delphi asigna un valor de memoria determinado conforme la cantidad de columnas vayas creando este valor no es un espacio de memoria si no una cantidad es decir 4 * 4 si existe data en las 16 casillas pues las 16 ocupan memoria si no pues no te ocupa nada. Con esto te respondí ambas preguntas, Espero haberyte sido de ayuda. Chao

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas