Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
Delphi 2006 Professional
|
Re: TList / dyn. Array - Was steckt dahinter?
26. Mai 2008, 18:06
So, Lehrer interviewt und folgendes rausbekommen:
Wird ein dynamisches Array erstellt so wird der Speicher nach dem hier schon beschriebenen Muster alloziert. Wird das Array nun jedoch erweitert so wird lediglich ein "neuer" Speicherblock für die Erweiterung reserviert und am Ende des ersten Speicherblocks findet sich ein Zeiger auf den nächsten. Zur Indexberechnung wird dann zusätzlich eine "Tabelle" herangezogen, die den Startindex und die dazugehörige Adresse des Bereichs enthält. Diese Art der Verknüpfung ähnelt der verketteten Liste und hätte theoretisch den Vorteil, das keine riesigen Datenmengen durch den Speicher geschoben werden müssen.
Ich hab mal die kleine schematische Darstellung dieser Erklärung angehängt.
Was nun Delphi letztendlich aus dem dynamischen Array macht konnte mir mein Lehrer nicht mit Gewissheit sagen (evtl. könnte sich da im Laufe der Versionen was an der Implementierung verändert haben) aber ich finde das Prinzip schon einleuchtend. In wie weit hat denn nun wer Recht?
Jan
|