Arrayübergabe an Funktion: Warum wird keine Kopie angelegt?
-
Sondern mit dem Original aus der Main() weitergearbeitet?
#include <iostream> using namespace std; void change_array(int array[]) { for(int i=0; i<=9; ++i) array[i] = 14; } int main() { int array[10]; change_array(array); for(int i=0; i<=9; ++i) cout<<array[i]<<endl; return(0); }
Wieso wird das array in main() geändert?
-
Weil Array[] zu einem Zeiger zerfällt und du somit die Adresse des ersten Elements übergibst.
-
Erstmal danke! Hast du eventuell einen Link dazu? Weil ich finde das ersieht man absolut nicht aus dem Quellcode, hab die ganze Zeit geknobelt, mich aber dennoch gefreut das es geht
-
Ja, guck mal hier:
http://www.user.tu-berlin.de/looprjbb/it/C_Kurs/funktion/Html/lektion_6/lektion_6.htmlSollte aber auch in jedem Buch erklärt....
-
Aus dem Quellcode allein sieht man sowieso nichts, wenn man die Sprache nicht kennt.