Zitat von
Chewie:
OK, dann halt mit Codebeispielen:
So deklarierst du dein Array:
a: Array[0..0] of Array[0..0] of Integer;
Mittels
GetMem reservierst du für dieses Array dann Speicher. Wenn du es vergrößern willst, reservierst du neuen Speicher in der entsprechenden Größe, verschiebst alle Daten in diesen Speicherbereich und gibts den alten via
FreeMem frei. Letztendlich hast du so die Speicherverwaltung eines dynamischen Arrays nachgebaut.
...
Das muss ich nochmal richtig stellen, da dieser trick sehr praktisch ist, aber leider so nicht funktionieren kann. Denn zur adressierung der daten, in mehr als einer dimension, wird auch die
max-anzahl benötig, die hier leider immer statisch 1 ist - und somit kann die erste dimension nicht erweitert werden:
addr := y * maxAnzahlX + x wäre zB. eine zweidimensionale addresierung, die hier leider versagt, da der kompiler ja nicht wissen kann, das man hier ein dynamisches array faken will.
Aber mit einer dimension funktioniert dieser trick prima und kann in speziellen fällen sinnvoll sein!
mâxîmôv.
{KDT}