## c't-Projekte - Mailinglisten

[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

### Re: [ct-bot] Problem mit Pointern

Absender: Torsten Evers
Datum: Sa, 01.04.2006 20:56:45
In-reply-to: <BCF016D5ED5AC34FBB655D109519ABCF083DFB@xxxxxxxxxxxxxxxxxxxx>
References: <BCF016D5ED5AC34FBB655D109519ABCF083DFB@xxxxxxxxxxxxxxxxxxxx>

    Hallo Carsten,

    Am Samstag, 1. April 2006 19:57 schrieb Carsten Giesen:
    > Ich bräuchte mal bitte Hilfe. Da ich den Code von AVR übernommen habe, tue
    > ich mich schwer den Fehler zu finden.
    [...]
    >
    > Hier rufe ich eine Routine auf:
    >
    > 	state = Get_byte(data_pack[i].data_ptr++,j);
    [...]
    > 	*rx_ptr = TWDR;

    > Das Problem ist, das der Werte den ich lese, nicht in
    > "data_pack[i].data_ptr++" ankommt.
    nun, wo schaust du denn nach wenn die Funktion zurückkehrt? Wenn Du in
    data_pack[i].data_ptr schaust, ist das klar, dass da kein Wert steht (wenn
    nicht, entschuldige die simple Vermutung aber sicher ist sicher ;) ).
    Du übergibst den Parameter ja mit Postinkrement-Operator, d.h. der Zeiger
    zeigt nach dem Aufruf auf den nächsten Character-Wert, d.h. eine
    Speicherstelle weiter.

    Hier ein kleines Testprogramm, das das verdeutlichen soll:

    #include <stdio.h>

    void testit(char* foo) {
            *foo='a';
    }

    int main() {
            char test[]="123456789";
            char *ptr=test;

            printf("String vorher: %s\n",test);
            testit(ptr++);
            printf("Zeiger zeigt auf: %c\n",*ptr);
            printf("String nacher: %s\n",test);
    }

    Schöne Grüße,

    Torsten Evers

- Referenzen:
  - [ct-bot] Problem mit Pointern
    - From: Carsten Giesen

- Voriger (Datum): [ct-bot] Problem mit Pointern, Carsten Giesen
- Nächster (Datum): AW: [ct-bot] Problem mit Pointern, Carsten Giesen
- Voriger (Thread): [ct-bot] Problem mit Pointern, Carsten Giesen
- Nächster (Thread): AW: [ct-bot] Problem mit Pointern, Carsten Giesen
- Indizes:
  - Datum
  - Thread