Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
15. Mai 2006
genau, denn woher sollte er denn wissen wie lang das Array ist, auf das der Pointer zeigt ... im statischen Array jedenfalls wird nirgends die Länge gespeichert.
Das geht höchstens, wenn du den Pointer auf ein bestimmtes Array setzt:
Type A = Array of Irgendwas;
P = ^A;
Aber dann zeigt Length(P^) immer das an, auf was das Array A eingestellt ist und nicht das, auf was P wirklich zeigt.
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
13. Mai 2006
Wenn "normal" bei dir statisch ( also Array ) bedeutet ... NEIN.
Ein Array of Byte ist zozusagen ein Record mit 4 Bytes drin,
wärend ein Array of Byte ein Pointer auf eine Array-Struktur ist, welche in sich wiederum ein Record mit Integern für ElementCount (Length) und Referenzzähler, mit einem dahinterliegendem Record der nötigen Bytes.
Var D: Array of Word
S: Array of Word;
...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
13. Mai 2006
Also einen Zeiger auf ein Array kannst du bei dynamischen und statischen Arrays anlegen.
Du mußt nur beachten, das in dynamisches Array auch eigentlich nur ein Zeiger auf seine Daten ist.