Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Dynamische Array (https://www.delphipraxis.net/212731-dynamische-array.html)

juelin 23. Mär 2023 08:59

Dynamische Array
 
Hallo Delphianer,
ich benutze Windows 10 und Delphi 10.4.
Habe bei mehrdimensionalen dynamischen Array Problem mit der Zuweisung der Anzahl Einträge.

type T3DArray = array of array of array of Double;
var w_input: T3DArry;
1. Aufruf -> setlength(w_input, 1, 4, 3); -> OK
2. Aufruf -> setlength(w_input, 1, 4, 3); -> OK
3. Aufruf -> setlength(w_input, 1, 40, 3); -> OK
4. Aufruf -> setlength(w_input, 1, 40, 3); -> Fehler

Fehlermeldung:
Im Projekt KNN.exe ist eine Exection der Klasse $C0000005 mit der Meldung 'access violation at 0x00405fd2: read of address 0x20d404bd'
aufgetreten.

Hat jemand eine Idee was das ist und was man tun kann?

Gruß
Jürgen

KodeZwerg 23. Mär 2023 09:27

AW: Dynamische Array
 
Code:
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

type
  T3dArr = array of array of array of double;
var
  arr: T3dArr;
begin
  try
    SetLength(arr, 1, 4, 3);
    SetLength(arr, 1, 4, 3);
    SetLength(arr, 1, 40, 3);
    SetLength(arr, 1, 40, 3);
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
  ReadLn;
end.
Läuft ohne Probleme durch.

Andreas13 23. Mär 2023 09:35

AW: Dynamische Array
 
Hallo Jürgen,

Du hast Dich vertippt, hier:
Delphi-Quellcode:
var w_input: T3DArry;
.
Es sollte korrekt heißen: T3DArray;

Dann funktioniert es einwandfrei. :-D

Grüße, Andreas

Uwe Raabe 23. Mär 2023 09:49

AW: Dynamische Array
 
Ich vermute der Fehler liegt irgendwo im nicht gezeigten Teil des Codes.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz