Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Was sind Dynamische Arrays??

  Alt 30. Sep 2008, 20:57
Ein Tutorial wird dazu nicht nötig sein, weil die sache eigentlich verdammt einfach ist.
Delphi-Quellcode:
type
  TMyArray = array of integer;

implementation

procedute DoSth;
var
  myarray: TMyArray;
  i: integer;
begin
  setlength(MyArray, 3); // Länge des Arrays auf 3 setzen
  for i := 0 to high(MyArray) do // high(MyArray) gibt den höchsten Index des Arrays zurück, hier 2.
                                 // Alternative: length(MyArray) - gibt die Länge zurück, in diesem fall 3
    MyArray[i] := i+1; // Zugriff auf Elemente ist wie gehabt

  // am Ende der procedure wird der Speicher des dynamischen Arrays automatisch wieder freigegeben
end;
Auch mehrdimensionale Arrays sind möglich:
Delphi-Quellcode:
type
  TMyArray2D = array of array of integer;

implementation

procedute DoSth2D;
var
  myarray: TMyArray2D;
  i,j: integer;
begin
  setlength(MyArray, 3, 4); // Länge des Arrays auf 3*4 setzen
  for i := 0 to high(MyArray) do
    for j := 0 to high(MyArray[i]) do
      MyArray[i,j] := ...;
end;
falls du mal mehrdimensionale arrays bracuhst, die nciht rechteckig sind, kannst du die Löngen für die Sub-Elemente auch einzeln setzen:
Delphi-Quellcode:
procedute DoSth2D;
var
  myarray: TMyArray2D;
  i,j,r: integer;
begin
  setlength(MyArray, 3); // Breite 3
  for i := 0 to high(MyArray) do
  begin
    r := random(5);
    setlength(myarray,r); // zufällige höhe
  end;
end;
  Mit Zitat antworten Zitat