Einzelnen Beitrag anzeigen

Wegalt

Registriert seit: 14. Nov 2003
12 Beiträge
 
#1

dynamisches Array -> setLength Problem

  Alt 10. Feb 2004, 13:30
Hallo,

ich habe ein Problem mit dem Speicher, welches mein Array braucht.

1. Wenn ich von vornerein weiß wie groß mein Array werden soll und dieses im Vorfeld auf die richtige größe setze, wird relativ wenig Speicher gebraucht

2. Wenn ich aber mein Array in der Größe immer um eins erhöhe frißt dieses unmengen von Arbeitsspeicher.

Delphi-Quellcode:
procedure TForm1.setArray; //Testbeispiel
var i: integer;
begin
 //zu 1. setlength(hallo,5,StrToInt(edit1.Text)+1);
 for i :=0 to strtoint(Edit1.Text) do
 begin
 //zu 2. setlength(hallo,5,i+1);
 hallo[0,i] := 'test12345678 '+ inttostr(i);
 hallo[1,i] := 'test12345678 '+ inttostr(i);
 hallo[2,i] := 'test12345678 '+ inttostr(i);
 hallo[3,i] := 'test12345678 '+ inttostr(i);
 hallo[4,i] := 'test12345678 '+ inttostr(i);
 Application.ProcessMessages;

 Label1.caption := inttostr(i);
 end;

end;
Gibt es eine Möglichkeit mein Array zu reorganisieren und damit den Speicherverbrauch zu senken, ohne das ich die Daten in ein weiteres Array kopieren muß, also in eins wo die größe vor der Befüllung feststeht?

Gruß
Wegalt
  Mit Zitat antworten Zitat