Einzelnen Beitrag anzeigen

Gerome

Registriert seit: 4. Sep 2002
Ort: Server-Raum im Keller
317 Beiträge
 
#2

Re: Was sind Dynamische Arrays??

  Alt 30. Sep 2008, 20:51
Bei einem dynamischen Array ist der Name auch das Motto: Es ist in seiner Größe variabel.

Du kannst es deklarieren als "MeinArray : Array of Sonstwas" und wenn Du es brauchst, hast Du meist eine grobe Idee davon, wie groß es denn sein soll. Dann benutzt Du "SetLength(MeinArray, 5)" und setzt das Array damit auf eine Länge von 5 Elementen (die mit 0 bis 4 durchnummeriert werden).

Wenn Du später merkst, dass das eng wird, dann lässt Du einfach ein neues SetLength los und vergrößerst Dein Array auf diese Weise: "SetLength(MeinArray, 10)" vergrößert Dein Array um weitere 5 Elemente auf nun insgesamt 10 Elemente. Die bisherigen Elemente bleiben erhalten, es wird einfach "angebaut". Du kannst die Größe auch verringern, dann fallen ggf. Elemente "über den Tisch".


Problem an der Sache ist: Besonders effizient sind sie nicht, die dynamischen Arrays. Immer dann, wenn Du die Größe änderst, wird das Array im Speicher komplett umkopiert. Wenn Du diese Tatsache im Hinterkopf behältst und die Größe des Arrays eben nicht permanent änderst, sondern etwa immer gleich am Stück 10 oder meinetwegen auch 100 neue Elemente reservierst, kann man mit der "Nicht-Effizienz" oftmals leben. Fall nicht könnte man beispielsweise zu Listen greifen.
Es lebe der eigene Keller.
  Mit Zitat antworten Zitat