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.


Anmelden zum Antworten