Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.435 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Zweidimensionales Array of Boolean Verständnisfrage

  Alt 26. Sep 2013, 12:47
Obwohl eigentlich schon alles gesagt wurde, versuche ich es noch einmal anders zu erklären.
Genau genommen verwaltet Delphi keine dynamischen mehrdimensionalen Arrays, bei denen alle Elemente in einem Speicherbereich liegen.

Im Speicher sieht das dann im Prinzip so aus (-> zeigt auf Speicher):
Code:
UniversumsMatrix(Pointer) -> array(UniversumsMatrix0(Pointer), UniversumsMatrix1(Pointer), ..., UniversumsMatrix99(Pointer))

UniversumsMatrix0(Pointer) -> array(UniversumsMatrix0_0(Boolean), UniversumsMatrix0_1(Boolean), ..., UniversumsMatrix0_59(Boolean))
UniversumsMatrix1(Pointer) -> array(UniversumsMatrix1_0(Boolean), UniversumsMatrix1_1(Boolean), ..., UniversumsMatrix1_59(Boolean))
...
UniversumsMatrix99(Pointer) -> array(UniversumsMatrix99_0(Boolean), UniversumsMatrix99_1(Boolean), ..., UniversumsMatrix99_59(Boolean))
Jedes Array-Element der ersten Dimension verweist auf ein eigenes unabhängiges Array der zweiten Dimension.
Jedes Array der zweiten Dimension kann gleich groß sein, muss aber nicht.

Ein anderes Beispiel:
Delphi-Quellcode:
  SetLength(UniversumsMatrix, 100, 60);
  SetLength(UniversumsMatrix, 101);
  SetLength(UniversumsMatrix[101], 5);
In der ersten Dimension sind jetzt 101 Arrays enthalten.
Die Arrays UniversumsMatrix[0] .. UniversumsMatrix[99] enthalten jeweils 60 Elemente, UniversumsMatrix[100] aber nur 5.

Was ich also eigentlich wissen möchte, ist wie ich auf den niedrigsten/höchsten Wert eines zweidimensionalen Arrays komme und zwar beide Dimensionen.
Deshalb ist deine ursprüngliche Frage für die 2.Dimension nicht eindeutig zu beantworten.
Man kann die Größe eines konkreten Elements der ersten Dimension bestimmen z.B. UniversumsMatrix[0].
Wurde vorher beim Erstellen des Arrays dafür gesorgt das alle anderen Elemente genauso groß sind, weis man Bescheid.
Ansonsten muss die Größe für jedes Element UniversumsMatrix[0] .. UniversumsMatrix[100] einzeln bestimmt werden.
  Mit Zitat antworten Zitat