Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Array in einer Prozedur erstellen
Mortal-Shadow - Di 09.09.08 15:20
Titel: Array in einer Prozedur erstellen
Hi,
ich brauche in meiner Prozedur einen Array.
Dessen Größe wird aber erst vor dem jeweiligen Aufruf der Prozedur bekannt.
Ich hatte gehofft das etwas in der Art funktionieren würde:
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.myprocedure(const Arraygroesse: Integer); var myarray: Array[1..Arraygroesse] of Integer; |
Leider lässt der Compiler das nicht zu. (Warum eigentlich nicht - er muss doch mit jedem Aufruf nur einen konstanten Bereich reservieren.)
Gibt es noch eine andere möglichkeit außer das ganze
a) per Stringlist ( .add in einer Schleife bis groß genug und dann per Strtoint() und inttostr() damit arbeiten)
b) per sehr großem Array, der halt unnötig Platz verbraucht, falls die Prozedur nur wenig Zahlen speichern muss.
zu tun?
Gruß, MS
Moderiert von
Narses: Topic aus Dateizugriff verschoben am Di 09.09.2008 um 15:49
Boldar - Di 09.09.08 16:31
oder mit pointern
Calculon - Di 09.09.08 16:47
Titel: Re: Array in einer Prozedur erstellen
Mortal-Shadow hat folgendes geschrieben: |
| [..] Leider lässt der Compiler das nicht zu. (Warum eigentlich nicht - er muss doch mit jedem Aufruf nur einen konstanten Bereich reservieren.) [..] |
Das Stichwort hast du selber schon gegeben mit "konstanter Bereich". Beim Kompilieren von statischen arrays ist die Größe in deiner Executable -wie der Name schon sagt- statisch festgelegt und nicht mehr variabel. Das ist halt so! Wenn du dynamische arrays benutzen willst, folge dem Link von
elundril. FORTRAN™ kann Speicher gar nicht dynamisch anfordern. Da musst du vor dem Kompilieren wissen, wie groß deine Felder sein werden. Btw.: Das geht AFAIK:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| const ARRAYGROESSE = 40;
[..]
procedure TForm1.MyProcedure; var MyArray: array [1..ARRAYGROESSE] of integer; |
Moderiert von
Calculon: Topic für kritisch mit bedenklichem Inhalt befunden am Di 09.09.2008 um 16:46
:lol: Toll! Ich habe einen neuen Tag gelernt! Damit lässt sich bestimmt viel Unfug anrichten. Nein liebe Mods mach' ich natürlich nicht!!
Mortal-Shadow - Di 09.09.08 20:49
Dynamischer Array klingt doch gut.
Vielen Dank.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!