Wie kann ich dynamische Arrays erzeugen?
Unter Delphi 4 gibt es ja endlich dynamische Arrays, also Felder, deren Größe zur Laufzeit geändert werden kann, näheres dazu steht in der online-Hilfe.
Unter Delphi 3 ist das nur etwas umständlicher möglich:
1. Deklariert wird ein dynamisches Array ohne Größenangabe:
type TdynArray = array[0..0] of integer; TdynArrayPtr = ^TdynArray; var myArray = TdynArrayPtr;
2. Der Speicher für die Daten muß man dann selber zuweisen, je nach aktueller Größe des Arrays, hier für x Elemente:
myArray := nil; myArray = AllocMem(x*size(integer));
4. Damit bei einer Größenänderung die vorhandenen Elemente nicht verloren gehen, benutzen wir hier die Funktion ReAllocMem:
myArray = ReAllocMem(y*size(integer));
5. Nicht vergessen: Selbst angeforderter Speicher muß auch immer selber freigegeben werden:
FreeMem(myArray);
Delphi 1 | Delphi 2 | Delphi 3 | Delphi 4 |
nicht getestet | Version nicht betroffen | getestet |
siehe auch: