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.