Liberar memoria en arrays dinámicos

La pregunta es un poco tonta pero es que yo soy programador de C y por circunstancias necesito saber una cosa sobre la asignación dinámica de memoria en Delphi.
Si tengo este procedure:
procedure ff;
var
A: array of Integer;
begin
SetLength(A, 10);
A[0] := 2;
end;
Ya sé que no sirve para nada pero es sólo un ejemplo.
Al hacer SetLength se reserva memoria para un array de 10 elementos. ¿Si no hago nada más se libera automáticamente la memoria asignada al array A al salir del procedure o tengo que hacer algo antes de acabar?
Respuesta
1
Ok mira este tipo de arreglos no se pueden liberar ya que no tienen apuntadores, así una manera de hacer esto, por ejemplo si tu pones un ListBox este es un arreglo estamos de acuerdo... ahora para liberar solo pondrías ListBox1. Free; hay otras clases como TStringList de hecho el listBox hereda de esta clase... entonces si tu declaras una variable de tipo TStringList esta primero la creas, luego le puedes agregar datos sin tener un limite con la propiedad Add Variable. Add('1') guarda el valor uno y para liberarlo solo pones Variable. Free; ademas que trae mucho más funciones que hacen más fácil el manejo...
Gracias
Si así es ya que el alcance de tu variable es solo en el procedure ff, si te das cuenta si tu mandas llamar de otro procedimiento SetLength(A, 10); pues esto te marcara error ya que no se ha declarado la variable A, si me explico...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas