Array "call by value" übergeben
-
Wie kann ich in C ein Array an eine Funktion per call by value übergeben?
call by reference ist klar:int funk(int a[]){...} ... wert=funk(a);
Das ändert aber in jedem Fall das Array (klar: Adresse wird übergeben). Kann ich das also auch irgendwie call by value übergeben? Thx
-
nein
-
Hi,
du kannst es nicht per Call by Value uebergeben, aber du kannst dir
Funktionslokal eine Kopie erstellen, in dem du einfach ein neuen
Array gleicher groesse anlegst und den Inhalt kopierst.mfg
v R
-
So'n Schrott. Muss ich das Ganze da in einer for-Schleife machen?
Hätte nicht gedacht, dass C so unflexibel sein kann
-
ich_ich schrieb:
So'n Schrott. Muss ich das Ganze da in einer for-Schleife machen?
Hätte nicht gedacht, dass C so unflexibel sein kannNein musst du nicht, schau dir mal memcpy & Co. an.
mfg
v R
-
Du koenntest auch das Array in eine Struktur verpacken, und die Struktur übergeben. Ist allerdings eher unüblich.
-
Ein Array wird immer als Zeiger übergeben, schon, weil gar nicht bekannt ist, ob das Array überhaupt in den Stack passen könnte. Und der Zeiger wird als Value übergeben.
-
Ich denke es geht eben doch.
int f(int a[18]);
-
RTFS, wird als Pointer übergeben.