![]() |
Delphi-Version: 2006
Verständnisproblem Funktionen und call by value / call by reference
Der Member Bummi zeigte mir diesen Quellcode:
Delphi-Quellcode:
Was ich nicht verstehe ist, warum die Prozedur modifyMatrix mylist verändert, obwohl weder ein Wert zurückgegeben noch als Parameter ein Zeiger übergeben wird. Soweit ich das in Erinnerung habe, konnte man die Beschränkung lokaler Variablen aufheben, wenn man als Parameter einen Zeiger übergibt.
procedure modifyMatrix(list:TArrayList);
Begin list[2,4]:=5; end; procedure TForm1.Button1Click(Sender: TObject); var mylist:TArrayList; begin setLength(myList,6,6); mylist[0,5]:=3; modifyMatrix(myList); label1.Caption:=inttostr(mylist[0,5]); label2.Caption:=inttostr(mylist[2,4]); end; |
AW: Verständnisproblem Funktionen und call by value / call by reference
Moin,
in deinem Fall übergibst du aber indirekt einen Zeiger, da ein Array nur als Zeiger existiert. Ich hoffe ich rede da jetzt nicht Mist ;) Wie sieht denn
Delphi-Quellcode:
aus?
TArrayList
MfG Fabian |
AW: Verständnisproblem Funktionen und call by value / call by reference
@Gargamel
Arrays und Objekte werden immer per Reference übergeben. EDIT: so nicht richtig, die Zeiger werden übergeben. |
AW: Verständnisproblem Funktionen und call by value / call by reference
Achso, jetzt wird Licht. Danke. Das erklärt einiges.
@xZise: type TArrayList = array of array of integer; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:39 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