The Pointer is pointing on you...
-
Sebastian Pizer schrieb:
Mentras schrieb:
char eingabe[1024] = {0}; //... rot3_func(eingabe); //Wieso [...] nicht: rot3_func(&eingabe);eingabe ist ein array von char und die Funktion erwartet ein char*. C und C++ führen hier einen "Array-zu-Zeiger-Verfall" durch. Dabei wird ein Zeiger erzeugt, der auf das erste Element des Arrays zeigt. Von Hand durchgeführt müsste es dann so aussehen:
rot3_func(&eingabe[0]);Gruß,
SPOh, nagut ich versuch´s mal wiederzugeben was ich verstanden habe...
Wenn ich den &-Operator verwenden wollte hätte ich´s so machen müssen:
Beim Aufrufen:
for(int i=0;eingabe[i]!='\0';i++) rot3_func(&eingabe[i]);Wäre natürlich jetzt etwas umständlicher, aber mir geht´s jetzt nur ums verstehen.
Lg Mentras
-
Mentras schrieb:
Wenn ich den &-Operator verwenden wollte hätte ich´s so machen müssen:
for(int i=0;eingabe[i]!='\0';i++) rot3_func(&eingabe[i]);Nein. Einfach
rot3_func(&eingabe[0]);Hier ist ein anderes Beispiel
char array[999]; char* p1 = array; // "array-to-pointer decay" (automatisch) char* p2 = &array[0]; // manuellp1 und p2 zeigen jeweils auf das erste Element des Arrays.
Gruß,
SP
-
Sebastian Pizer schrieb:
Mentras schrieb:
Wenn ich den &-Operator verwenden wollte hätte ich´s so machen müssen:
for(int i=0;eingabe[i]!='\0';i++) rot3_func(&eingabe[i]);Nein. Einfach
rot3_func(&eingabe[0]);Hier ist ein anderes Beispiel
char array[999]; char* p1 = array; // "array-to-pointer decay" (automatisch) char* p2 = &array[0]; // manuellp1 und p2 zeigen jeweils auf das erste Element des Arrays.
Gruß,
SPUnd der Zeiger ändert dann alle Elemente in der Funktion?