Nachtrag (leider kann ich meinen vorigen Beitrag nicht mehr bearbeiten):
Zitat von
Jürgen Thomas:
Ein Record hat eine feste Größe; das Programm (bzw. das Betriebssystem) weiß also zu jedem beliebigen Zeitpunkt genau, wieviel Speicher aktuell - nämlich nach der aktuellen Länge des Arrays - für das gesamte Array benötigt wird.
Das gilt so nicht, wenn der Record einen
Delphi-String (variable Länge!) enthält. Das braucht uns eigentlich nicht weiter zu stören, weil Delphi alles, was dazu gehört, im Hintergrund erledigt. Dann gilt aber verstärkt, was ich im Abschnitt "Anhängen oder Einfügen eines neuen Elements" geschrieben habe.
Zitat von
Jürgen Thomas:
Jeder Record bekommt an der Stelle, an der er angelegt wird, seinen Speicher zugewiesen...
Dies ist dann unproblematisch, wenn der Record
ausschließlich innerhalb des Arrays verwendet wird. Dann wird außerhalb des Arrays kein Speicherplatz benötigt und reserviert (und muss also auch nicht freigegeben werden). Der Speicher für den Record wird dadurch angelegt, dass der Speicher des Arrays vergrößert wird; er wird dadurch freigegeben, dass der Speicher des Arrays verkleinert wird.
Jürgen