Autor Beitrag
Xanyn
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Di 25.05.04 15:30 
Hallo,

ich habe das Problem, dass ich kein festen Array, auf einen dynamischen Array übergeben kann.
Das ganze sieht so aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
AusgabeMerge(a: array of Real; lo, hi: integer):minmax;
...
SetLength(pufferFix, (dCount div 2));
pufferMain:=AusgabeMerge(pufferFix, lo, hi);

Der Array muss aber dynamisch sein, da er mit dCount erst zur laufzeit festgemacht wird und sich während der laufzeit ändert.

Wie kann ich klar machen das in "AusgabeMerge" das feste Array auf den dynamischen genommen wird.

Danke
Steffen

Moderiert von user profile iconPeter Lustig (15:31, 25.05.2004): Code- durch Delphi-Tags ersetzt
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 25.05.04 15:48 
So sollte es gehn:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
type
 TDynRealArray = array of Real;

...

function AusgabeMerge(a: TDynRealArray; lo, hi: integer):minmax;

...

var
 pufferFix: TDynRealArray;

...

SetLength(pufferFix, (dCount div 2));
pufferMain:=AusgabeMerge(pufferFix, lo, hi);
Xanyn Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Di 25.05.04 23:43 
Und warum funktioniert das so?
ich gebe doch eigentlich nur einen anderen namen, also definiere mir einen typ und der macht dann eh das gleiche. Spart doch nur schreibarbeit ... oder passiert bei der typ-deklaration noch was myteriöses?

Danke Steffen
EUOCheffe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 124



BeitragVerfasst: Mi 26.05.04 04:32 
Guck mal in der Delphi Hilfe unter "Array" nach. Da bekommst du gleich mehrere Themen angezeigt:

Zitat:
-Dynamic arrays
-Open array parameters
-Static arrays
-Variant open array parameters

Zitat:
Note

The syntax of open array parameters resembles that of dynamic array types, but they do not mean the same thing. The previous example creates a function that takes any array of Char elements, including (but not limited to) dynamic arrays. To declare parameters that must be dynamic arrays, you need to specify a type identifier:

type TDynamicCharArray = array of Char;
function Find(A: TDynamicCharArray): Integer;

For information about dynamic arrays, see Dynamic arrays.