AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Verständnisproblem Funktionen und call by value / call by reference

Verständnisproblem Funktionen und call by value / call by reference

Ein Thema von Gargamel · begonnen am 31. Okt 2010 · letzter Beitrag vom 31. Okt 2010
Antwort Antwort
Gargamel

Registriert seit: 19. Mär 2007
171 Beiträge
 
#1

Verständnisproblem Funktionen und call by value / call by reference

  Alt 31. Okt 2010, 14:44
Delphi-Version: 2006
Der Member Bummi zeigte mir diesen Quellcode:

Delphi-Quellcode:
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;
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.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Verständnisproblem Funktionen und call by value / call by reference

  Alt 31. Okt 2010, 14:48
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 TArrayList aus?

MfG
Fabian
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Verständnisproblem Funktionen und call by value / call by reference

  Alt 31. Okt 2010, 15:00
@Gargamel

Arrays und Objekte werden immer per Reference übergeben.


EDIT: so nicht richtig, die Zeiger werden übergeben.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)

Geändert von Bummi (31. Okt 2010 um 16:01 Uhr)
  Mit Zitat antworten Zitat
Gargamel

Registriert seit: 19. Mär 2007
171 Beiträge
 
#4

AW: Verständnisproblem Funktionen und call by value / call by reference

  Alt 31. Okt 2010, 15:37
Achso, jetzt wird Licht. Danke. Das erklärt einiges.

@xZise:

type

TArrayList = array of array of integer;

Geändert von Gargamel (31. Okt 2010 um 15:44 Uhr)
  Mit Zitat antworten Zitat
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 +2. Es ist jetzt 06:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf