AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Merkwürdiges Problem mit einem dynamischen Array

Merkwürdiges Problem mit einem dynamischen Array

Ein Thema von thomasdrewermann · begonnen am 24. Jul 2006 · letzter Beitrag vom 24. Jul 2006
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#1

Merkwürdiges Problem mit einem dynamischen Array

  Alt 24. Jul 2006, 15:01
Hallo,

wenn ich ein dynamisches Array global wir folgt deklarieren will:
Code:
 private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1; var a:Array of Double;


implementation
Bekomme ich vom Compiler folgende Fehler ausgeworfen:
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
Sport ist mord...
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.303 Beiträge
 
Delphi XE7 Professional
 
#2

Re: Merkwürdiges Problem mit einem dynamischen Array

  Alt 24. Jul 2006, 15:07
Delphi 3 kann so weit ich das weiß keine dynamischen Arrays.


Delphi-Quellcode:
private
    { Private-Deklarationen } 
  public
    { Public-Deklarationen } 
  end;

var
  Form1: TForm1;

var a:Array [0..10] of Double;

implementation
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Eichhoernchen

Registriert seit: 22. Apr 2004
Ort: Hagen
322 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Merkwürdiges Problem mit einem dynamischen Array

  Alt 24. Jul 2006, 15:07
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!
Jan
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Merkwürdiges Problem mit einem dynamischen Array

  Alt 24. Jul 2006, 15:09
Nochmal anders formuliert: es ist ein Unterschied zwischen einer dynamischen Array-Variablen und einem offenen Array-Parameter.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#5

Re: Merkwürdiges Problem mit einem dynamischen Array

  Alt 24. Jul 2006, 15:10
Worin lieg denn dieser?

Wie nutze ich Array-Variablen?

Gruß
Thomas
Sport ist mord...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
34.931 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Merkwürdiges Problem mit einem dynamischen Array

  Alt 24. Jul 2006, 15:23
Du erstellst die 'nen VorlageTypen
Type TMyDoubleArray = Array[0..0] of Double; daraus wird dann der PointerTyp erstellt/genutzt
Delphi-Quellcode:
Type PMyDoubleArray = ^TMyDoubleArray;
Var MyDoubleVar: PMyDoubleArray;
// oder
Var MyDoubleVar: ^TMyDoubleArray;
und dann mußt du für die Speicherresservierung (z.B. per GetMem/FreeMem/eallocMem) sorgen.
MyDoubleVar := GetMem(x * SizeOf(Double));
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#7

Re: Merkwürdiges Problem mit einem dynamischen Array

  Alt 24. Jul 2006, 15:42
Nach der Speicherreservierung kann ich das verpointete Array normal nutzen? Also über a[x]?

Gruß
Thomas
Sport ist mord...
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Merkwürdiges Problem mit einem dynamischen Array

  Alt 24. Jul 2006, 15:49
jop.

Setlength funktioniert dann natürlich nicht, zur Vergrößerung musst du wieder Speicher alloziieren. (wie geht denn das? den speicherbereich vergrößern? )
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#9

Re: Merkwürdiges Problem mit einem dynamischen Array

  Alt 24. Jul 2006, 15:51
Vielen Dank!

Dann weiss ich bescheid!

Gruß
Thomas
Sport ist mord...
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#10

Re: Merkwürdiges Problem mit einem dynamischen Array

  Alt 24. Jul 2006, 15:54
Zitat von DGL-luke:
(wie geht denn das? den speicherbereich vergrößern? )
So wie es SetLength auch macht: Neuen, größeren Speicher reservieren, Inhalt aus dem alten rauskopieren und diesen dann freigeben.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf