001
16.06.2020, 17:43 Uhr
ao
(Operator)
|
parameter_lookup soll par by-reference übergeben kriegen und nach außen wirksam ändern.
Wenn du einen int by-reference übergeben willst, musst du einen pointer auf int übergeben. Wenn du einen pointer auf PARAMETER by reference übergeben willst, musst du was übergeben? Richtig: einen pointer auf pointer auf PARAMETER:
C++: |
int parameter_lookup(int number,PARAMETER** target);
|
Und dann:
C++: |
*target=¶_database[i];
|
Dadurch, dass du nur einen einfachen Pointer übergibst, bleibt die Änderung an target lokal in der Funktion, und der äußere Parameter par wird nicht beeinflusst.
Das gilt für C.
Wenn das C++ ist, solltest du dir was über C++-Referenzen anlesen, dann kannst du auch eine Referenz auf einen Pointer übergeben, das macht genau, was du willst und vermeidet den Knoten im Hirn.
Übrigens: Warum deklarierst du "static PARAMETER *par;"? Warum static? Dieser Post wurde am 16.06.2020 um 17:46 Uhr von ao editiert. |