Forum: Object-Pascal / Delphi-Language
Delphi
by Namenloser,
22. Nov 2013
Ok, du hast Recht, aber nur, weil SetLength im Code vorkommt. Eigentlich logisch, dabei wird ja neuer Speicher reserviert und dadurch kann sich der Zeiger ändern...
Aber ansonsten geht das:
type
TIntArray = array of integer;
procedure Foo(A: TIntArray);
begin
A := 2;
end;
Forum: Object-Pascal / Delphi-Language
Delphi
by Namenloser,
22. Nov 2013
Braucht man nicht unbedingt, da Arrays genau wie Objekte Referenztypen sind. Copy-On-Write wie bei Strings gibt es bei Arrays auch nicht. Somit wird immer das Original-Array modifiziert. Zumindest bin ich mir da zu 95% sicher.
Besser verständlich ist es aber mit var, da gebe ich dir recht.
@DelTurbo: Zeig mal deinen kompletten Code, also die Typendeklaration und deine Funktion. Eigentlich...
Forum: Object-Pascal / Delphi-Language
Delphi
by Namenloser,
21. Nov 2013
Und das vor allem zur Compile-Zeit ... oder?
Forum: Object-Pascal / Delphi-Language
Delphi
by Namenloser,
21. Nov 2013
array of const und generell array of irgendwas bei Prozedurparametern sind nicht dasselbe wie „normale“ dynamische Arrays. Ich meine, die wären deshalb auch Read-Only und das interne Format ist glaube ich auch irgendwie anders als bei dynamischen Arrays (welche, wenn ich mich nicht irre, auch ein neueres Konstrukt sind als die array-Parameter).
Was z.B. auch nicht geht:
function Foo(A:...