Pointer auf pointer inkrementieren



  • Moin moin,

    ich habe ein kleines Problem mit einem Poiter auf einen Pointer. Dazu ersteinmal ein kleine Coder Schnipzel: (habe hir nur das nötigste eingefügt)

    // String liegt an Adresse a
    char teststring[64]="Dies ist nur ein Beispiel";
    
    // ppString liegt an Adresse b und zeigt auf Adresse c
    void f2(const char _far **ppString)
    {
      char Zeichen;
    
      Zeichen = **ppString;  // Zeichen = "D"
    
      // Hier soll der Zeiger der an Adresse c liegt im 1 Byte erhögt werden.
      // (pString aus f2 soll also auf das nächste Zeichen im String zeigen.
      // Funktioniert aber so nicht, was tun?
      *ppString++;
    
      Zeichen = **ppString;  // Jetzt sollte Zeichen = "i" sein, ist es aber nicht
    
    }
    
    // pString liegt an Adresse c und zeigt auf Adresse a
    void f1(const char _far *pString)
    {
      char Zeichen;
    
      Zeichen = *ppString;  // Zeichen = "D"
    
      f2(&pString);
    
      // Mit pString, der von f1 geändert wurde weiter arbeiten.
      Zeichen = *ppString;  // Jetzt sollte Zeichen = "i" sein, ist es aber nicht
    }
    
    void main(void)
    {
      f1(teststring);
    }
    

    Ich hoffe, das ist einigermassen verständlich.
    Was bei mir nicht so richtig funktionieren will ist das "*ppString++". Es wird nicht der Zeiger an Adresse c (pString) um ein Byte erhäht, sondern der Zeiger an Adresse b um 4 Byte. Und das soll so nicht sein. Wie muss ich den Code ab ändern?

    Mit freundlichen Grüßen und vielen Dank im voraus
    Quake



  • probiers mal so

    (*p)++
    


  • Hallo,

    kleine Klammer grosse Wirkung. Das war es was ich gesucht habe.

    Besten Dank nochmal.


Log in to reply