AW: Arraygrösse und Stack Overflow
Zitat:
Delphi-Quellcode:
und TMyArray = array [0..1000] of array [0..10] of array [0..10000] of integer;
Delphi-Quellcode:
sind syntaktisch dasselbe. Das hat nichts mit optimieren zu tun.TMyArray = array[0..1000, 0..10, 0..10000] of integer; Zitat:
|
AW: Arraygrösse und Stack Overflow
Zitat:
Wir haben dieses kleine Array bisher im Sourcecode an verschiedenen Funktionen gefunden. Erstmal rausfinden, was der überhaupt programmiert hat. Es gibt auch noch Funktionen, die etwas 2000 Zeilen haben. Dokumentation gibt es nicht. Nur das Free Pascal Projekt, das wir auf Delphi umsetzen sollen. |
AW: Arraygrösse und Stack Overflow
Jupp, unterschiedliche Syntax, aber technisch gesehn, sind die Beiden identisch.
Delphi-Quellcode:
Rein von den Daten her ist es sogar gleich/kompatibl zu
xxx: array[0..9] of array[0..9] of Byte;
xxx: array[0..9, 0..9] of Byte;
Delphi-Quellcode:
xxx: array[0..99] of Byte;
ABER, leider ist teilweise das Letzte auch für den Compiler das Selbe. :wall: 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
Delphi-Quellcode:
sind direkt im Typ gespeichert und beim
array[..] of Xyz;
Delphi-Quellcode:
noch mit einem Pointer dazwischen.
array of Xyz;
Delphi-Quellcode:
zeigt bei dynamisch und statisch auf die Daten.
@Arr[0]
Delphi-Quellcode:
kommt beim Statischen auf's Gleiche raus, aber beim Dynamischen zeigt es auf den "internen" Array-Pointer.
@Arr
Und bei
Delphi-Quellcode:
das Gleiche,
array of array of ...
Delphi-Quellcode:
liegen auch die SubArrays hintereinander,
array[..] of array[..] of ...
Delphi-Quellcode:
bzw
array[..] of array of ...
Delphi-Quellcode:
die SubArrays natülich verteilt liegen.
array of array of ...
Kanst das mit Record und Object vergleichen. (so gesehn ist ein Object ein Record mit einem interen Pointer) |
AW: Arraygrösse und Stack Overflow
Liste der Anhänge anzeigen (Anzahl: 1)
I would use something like this
Code:
I think accessing such nested data with M[i][j, k] easier to read and write.
type
TMatri = array of array of Integer; TMatrixArr = array of TMatri; var M: TMatrixArr; i, j, k: Integer; const DIM1 = 3; DIM2 = 4; DIM3 = 5; begin SetLength(M, DIM1); for I := Low(M) to High(M) do // or // for i := 0 to DIM1-1 do begin SetLength(M[i], DIM2, DIM3); for j := 0 to Pred(DIM2) do // or // for j := 0 to DIM2-1 do for k := 0 to Pred(DIM3) do // or // for k := 0 to DIM3-1 do M[i][j, k] := Abs(k - j); end; Anhang 56667 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz