![]() |
array als Wert-Parameter
Hi!
Wenn man array-Paramter als Wert-Parameter übergibt, werden sie ja trotzdem immer wie var-Parameter behandelt, oder? Wo liegt da der Sinn? Wie kann man umgehen, dass das als Parameter übergebene Array in der aufrufenden procedure geändert wird? Muss ich dann in der aufgerufenen einen array als lokalen Parameter haben und da alle Werte einzeln reinkopieren? Denn wenn ich das gesamte Array auf einmal kopiere, führt jede Änderung an dem einen Array auch zur Änderung des anderen. Gibt es da noch andere Möglichkeiten oder ist das die einzige? |
Re: array als Wert-Parameter
AFAIK erhälst du nur einen Pointer, wenn du das durch das Schlüsselwort var oder const deutlich machst. Wenn du keines dieser Schlüsselworte angibst wird AFAIK kein Pointer übergeben, sondern die Variable im Parameter wird kopiert ;)
|
Re: array als Wert-Parameter
Und da eine Dynamisches-Array-Variable nur einen Pointer enthält, wird eben doch wieder einer übergeben ;) .
@Cöster: ![]() |
Re: array als Wert-Parameter
Ok, danke erstmal.
Nun habe ich einen Record:
Delphi-Quellcode:
Dieser Record wird an eine Funktion übergeben.
TRecord = record
Int: Integer; Arr: array of Integer; end; So:
Delphi-Quellcode:
oder so:
<Funktionsname>(Copy(<Recordname>));
Delphi-Quellcode:
geht das leider nicht. Wie dann?
<Funktionsname>((Int: <Recordname>.Int; Arr: Copy(<Recordname>.Arr)));
|
Re: array als Wert-Parameter
...
|
Re: array als Wert-Parameter
Zitat:
|
Re: array als Wert-Parameter
FunktionsName ( MyRecord : TRecord):boolean;
das ding TRecord zu nennen halte ich allerdings für nicht so pralle^^ oder halt# FunktionsName (var MyRecord : TRecord):boolean; oder FunktionsName (const MyRecord : TRecord):boolean; |
Re: array als Wert-Parameter
...
|
Re: array als Wert-Parameter
Zitat:
@ mkinzler: In der Delphi-Hilfe steht: Zitat:
Aber wie übergebe ich denn jetzt einen Record, wobei durch die Änderung des Arrays des Records in der aufgerufenen Funktion nicht auch der Record in der aufrufenden Funktion geändert wird? Ein Record kann der Funktion Copy ja nicht als Parameter übergeben werden, wie ich oben auch schon geschrieben hab. Muss ich dafür vor dem Aufruf die Record-Eigenschaften einzeln unter einer lok. Variablen speichern und diese dann übergeben? |
Re: array als Wert-Parameter
Dann nehm ich alles zurück :oops:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:06 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