Oliver Lehmann schrieb:
> wie komme ich in test() wieder auf das 1. Byte von Buffer?
Wenn du eine Pointer-Variable hast, dann benennst du durch die 
Verwendung des Variablen-Namens alleine immer die Adresse auf die dieser 
Pointer zeigt.
    Buffer = Buffer + 2;
setzt also die Adresse um 2 Einheiten weiter. Der Zeiger zeigt danach 
auf eine andere Stelle im Speicher.
Setzt du VOR den Namen der Pointer-Variablen einen *, dann bedeutet das 
'Dereferenzieren'. D.h. gemeint ist dann nicht die Adresse, die in der 
Pointer Variablen gespeichert ist, sondern der Wert, der im Speicher 
unter dieser Adresse zu finden ist.
Graphisch veranschaulicht. Eine Pointer Variable zeige im Speicher auf 
eine Speicherzelle, in der der Wert 5 abgelegt sei
                            +---+
   Buffer                   | 3 |
   +--------+               +---+
   |   o------------------->| 5 |
   +--------+               +---+
                            | 9 |
                            +---+
'Buffer' alleine, wäre die Spezifikation für das Rechteck, über dem 
'Buffer' steht. Damit wird also die Variable manipuliert, an der der 
Pfeil seinen Ausgang nimmt. Tut man das, dann zeigt der Pfeil danach 
woanders hin.
   Buffer = Buffer + 1;
ist also die Anweisung, Buffer auf das nächste Element im Speicher 
zeigen zu lassen
                            +---+
   Buffer                   | 3 |
   +--------+               +---+
   |   o-----------+        | 5 |
   +--------+      |        +---+
                   +------->| 9 |
                            +---+
'*Buffer' hingegen ist die Spezifikation, das man sich auf das Ende des 
Pfeiles beziehen möchte. In diesem Fall eben die 5. Mittels *Buffer = 8; 
schreibt man also an die Stelle, auf die Buffer zeigt (ausgedrückt durch 
den *) eine 8
                            +---+
   Buffer                   | 3 |
   +--------+               +---+
   |   o------------------->| 8 |
   +--------+               +---+
                            | 9 |
                            +---+
Und das ist eine vollkommen andere Operation.
Und jetzt überleg noch mal, was wohl
macht. Worauf bezieht sich dieses Statement? Auf den Zeiger selber, oder 
auf das worauf er zeigt? Wo sind Dereferenzieungs-Sterne und wo nicht? 
Wo wird daher der Pointer selbst manipuliert und wo das, worauf er 
zeigt? Und wie deckt sich das mit dem, was du eigentlich tun willst?