![]() |
Merkwürdiges Problem mit einem dynamischen Array
Hallo,
wenn ich ein dynamisches Array global wir folgt deklarieren will:
Code:
Bekomme ich vom Compiler folgende Fehler ausgeworfen:
private
{ Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; var a:Array of Double; implementation 1. Fehler: [ erwartet, aber 'OF' gefunden 2. Fehler: 'OF' erwartet, aber 'implementation' gefunden Kopiere ich folgende Methoden aus der Delphi-Hilfe in den Quellcode, compiliert er ohne Fehler:
Code:
procedure Clear(var A: array of Double);
var I: Integer; begin for I := 0 to High(A) do A[I] := 0; end; function Sum(const A: array of Double): Double; var I: Integer; S: Double; begin S := 0; for I := 0 to High(A) do S := S + A[I]; Sum := S; end; Weiss jemand woran dieses Verhalten liegt? Was mache ich falsch? Meine Delphi-Version ist 3. Gruß Thomas |
Re: Merkwürdiges Problem mit einem dynamischen Array
Delphi 3 kann so weit ich das weiß keine dynamischen Arrays.
Delphi-Quellcode:
Grüße
private
{ Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; var a:Array [0..10] of Double; implementation Klaus |
Re: Merkwürdiges Problem mit einem dynamischen Array
Ich glaub Delphi 3 unterstützt noch gar keine dynamischen Arrays,
schlagt mich wenn ich falsch liege aber ich meine ich hätte dass mal gelesen! |
Re: Merkwürdiges Problem mit einem dynamischen Array
Nochmal anders formuliert: es ist ein Unterschied zwischen einer dynamischen Array-Variablen und einem offenen Array-Parameter.
Grüße vom marabu |
Re: Merkwürdiges Problem mit einem dynamischen Array
Worin lieg denn dieser?
Wie nutze ich Array-Variablen? Gruß Thomas |
Re: Merkwürdiges Problem mit einem dynamischen Array
Du erstellst die 'nen VorlageTypen
Delphi-Quellcode:
daraus wird dann der PointerTyp erstellt/genutzt
Type TMyDoubleArray = Array[0..0] of Double;
Delphi-Quellcode:
und dann mußt du für die Speicherresservierung (z.B. per GetMem/FreeMem/eallocMem) sorgen.
Type PMyDoubleArray = ^TMyDoubleArray;
Var MyDoubleVar: PMyDoubleArray; // oder Var MyDoubleVar: ^TMyDoubleArray;
Delphi-Quellcode:
MyDoubleVar := GetMem(x * SizeOf(Double));
|
Re: Merkwürdiges Problem mit einem dynamischen Array
Nach der Speicherreservierung kann ich das verpointete Array normal nutzen? Also über a[x]?
Gruß Thomas |
Re: Merkwürdiges Problem mit einem dynamischen Array
jop.
Setlength funktioniert dann natürlich nicht, zur Vergrößerung musst du wieder Speicher alloziieren. (wie geht denn das? den speicherbereich vergrößern? :gruebel: ) |
Re: Merkwürdiges Problem mit einem dynamischen Array
Vielen Dank!
Dann weiss ich bescheid! Gruß Thomas |
Re: Merkwürdiges Problem mit einem dynamischen Array
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:43 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