Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#13

AW: Arraygrösse und Stack Overflow

  Alt 21. Feb 2024, 17:19
Jupp, unterschiedliche Syntax, aber technisch gesehn, sind die Beiden identisch.
Delphi-Quellcode:
xxx: array[0..9] of array[0..9] of Byte;
xxx: array[0..9, 0..9] of Byte;
Rein von den Daten her ist es sogar gleich/kompatibl zu
xxx: array[0..99] of Byte;

ABER, leider ist teilweise das Letzte auch für den Compiler das Selbe.
https://quality.embarcadero.com/browse/RSP-42256


Bei statischen Arrays liegen die Daten der Felder immer hintereinander (zusammenhängend).
Bei dynamischen Arrays stehen nur die Referenzen hintereinander, aber die einzelnen Daten liegen verteilt im Arbeitsspeicher.

Die Daten eines array[..] of Xyz; sind direkt im Typ gespeichert und beim array of Xyz; noch mit einem Pointer dazwischen.
@Arr[0] zeigt bei dynamisch und statisch auf die Daten.
@Arr kommt beim Statischen auf's Gleiche raus, aber beim Dynamischen zeigt es auf den "internen" Array-Pointer.

Und bei array of array of ... das Gleiche,
array[..] of array[..] of ... liegen auch die SubArrays hintereinander,
array[..] of array of ... bzw array of array of ... die SubArrays natülich verteilt liegen.

Kanst das mit Record und Object vergleichen. (so gesehn ist ein Object ein Record mit einem interen Pointer)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (22. Feb 2024 um 17:11 Uhr) Grund: upsi
  Mit Zitat antworten Zitat