felder mit call by reference
-
Hallo ich würde gerne ein Feld von Chars per call by reference an ein Unterprogramm übergeben, und in dem Unterprogramm auf einzelne felder zugreifen.
void ziffer(unsigned char *input) { printf("%u",*input); printf("%u",*(input+1)); } int main(int argc, char *argv[]) { unsigned char data[2]; data[0]=255; data[1]=123; ziffer(&data[0]); system("PAUSE"); return 0; }
So auf das nächste Feld zu positionieren hat nicht so ganz geklappt.
Ich muss ja irgendwie von der Adresse von data[0] auf data[1] erhöhen und dann darauf zugreifen, nur wie mach ich das bei call by reference in c?
-
void ziffer(unsigned char *input) { printf("%u",*input++); printf("%u",*input); } int main(int argc, char *argv[]) { unsigned char data[2]; data[0]=255; data[1]=123; ziffer(data); system("PAUSE"); return 0; }
Durch *input++ wird erst der wert Übergeben und anschließend eine Adresse weitergeschaltet
Außerdem reicht es wenn du den Zeiger data einfach übergibtst, denn es ist immer ein Zeiger auf den Anfang des arrays.
-
Was funktioniert denn an dem Programm nicht? Sieht eigentlich richtig aus.