lordosiris
Mitglied
Hallo,
hab fast direkt noch eine andere Frage.
Und zwar hab ich hier ein klitzekleines Programm, dessen Output ich aber absolut nicht verstehen will.
Es besteht auf der einen Seite natürlich aus dem main Teil (int max, char **hubert). Darin wird ein int a initialisiert, danach eine funktion mit (*++hubert); aufgerufen, dem int a wird dann 1 zugewiesen, danach wird a noch ausgegeben ("Wert = a") und mit return exit_status das ganze beendet.
5 Zeilen im Main Programm.
Diese Funktion, die aufgerufen wird, ist der zweite Teil (bzw. steht hald davor).
void funktion(char *array); darin wird int a mit 5, int b mit 7, char puffer[5] erstellt. Danach wird der string array in puffer kopiert. Und abschließend wird puffer, a, b ausgegeben.
Aber ich verstehe die Ausgabe nicht.
Wenn man im Parameter HALLO übergibt, ist die Endausgabe: HALLO 5 7, Wert = 1;
Bei HALLO123 Eingabe, Ausgabe: HALLO123 5 0, Wert=1; Hier wurde der 7er schonmal zu einem 0er****
Bei HALLO12345678 Eingabe, Ausgabe: HALLO12345678 56 926299444, Wert = 1;
Bei HALLO123456789ABCD, Ausgabe: HALLO123456789ABCD 1111570544 926299444, SPEICHERZUGRIFFSFEHLER (statt Wert);
Ab HALLO12345678 steig ich komplett aus.
Ich hab mir das mittlerweile soweit zusammengereimt, dass der Aufruf der Funktion mit (*++hubert) was damit zu tun hat.
Was bezwecken diese zwei ++ vor dem char wert, der dann als array in den puffer kopiert wird?
Was bezwecken die zwei ** bei int main(int max, char **hubert)?
Bin leider absoluter C Neuling
hab fast direkt noch eine andere Frage.
Und zwar hab ich hier ein klitzekleines Programm, dessen Output ich aber absolut nicht verstehen will.
Es besteht auf der einen Seite natürlich aus dem main Teil (int max, char **hubert). Darin wird ein int a initialisiert, danach eine funktion mit (*++hubert); aufgerufen, dem int a wird dann 1 zugewiesen, danach wird a noch ausgegeben ("Wert = a") und mit return exit_status das ganze beendet.
5 Zeilen im Main Programm.
Diese Funktion, die aufgerufen wird, ist der zweite Teil (bzw. steht hald davor).
void funktion(char *array); darin wird int a mit 5, int b mit 7, char puffer[5] erstellt. Danach wird der string array in puffer kopiert. Und abschließend wird puffer, a, b ausgegeben.
Aber ich verstehe die Ausgabe nicht.
Wenn man im Parameter HALLO übergibt, ist die Endausgabe: HALLO 5 7, Wert = 1;
Bei HALLO123 Eingabe, Ausgabe: HALLO123 5 0, Wert=1; Hier wurde der 7er schonmal zu einem 0er****
Bei HALLO12345678 Eingabe, Ausgabe: HALLO12345678 56 926299444, Wert = 1;
Bei HALLO123456789ABCD, Ausgabe: HALLO123456789ABCD 1111570544 926299444, SPEICHERZUGRIFFSFEHLER (statt Wert);
Ab HALLO12345678 steig ich komplett aus.
Ich hab mir das mittlerweile soweit zusammengereimt, dass der Aufruf der Funktion mit (*++hubert) was damit zu tun hat.
Was bezwecken diese zwei ++ vor dem char wert, der dann als array in den puffer kopiert wird?
Was bezwecken die zwei ** bei int main(int max, char **hubert)?
Bin leider absoluter C Neuling