Problem mit der Struktur



  • Hallo, zusammen
    Ich habe zwei Codes, die gleiche Ergebnisse ausgeben sollten. Aber...

    //Code 1:
    struct Vierbit                   
       {
          int b:4;
       };
       struct Vierbit *bfZeiger_4;      //Zeiger auf Datentyp von 4 Bits
       FILE *datei;
       datei = fopen("Daten.txt","rt");
       while ((fscanf(datei, "%d", bfZeiger_4)) != EOF)
          {
             printf("%d\t", bfZeiger_4->b);  //Inhalt ausgeben
             bfZeiger_4++;
          }
       fclose(datei);
    
    //code 2:
    struct Vierbit                   
       {
          int b:4;
       };
       struct Vierbit *bfZeiger_4;
       struct Vierbit *rueckgabe;
       FILE *datei;
       rueckgabe = bfZeiger_4;    //Anfangsaddr. übergeben
       datei = fopen("Daten.txt","rt");
       while ((fscanf(datei, "%d", bfZeiger_4)) != EOF)
          {
             bfZeiger_4++;
          }
       fclose(datei);
       while (rueckgabe->b != NULL)
          {
             printf("%d\t", rueckgabe->b);
             rueckgabe++;
          }
    

    Was verschieden ist, ist dass beim 2. Code die Var. "rueckgabe" die Adresse von bfZeiger_4 übernimmt und die Inhalt ausgibt. Aber der 1.Code läuft gut, der 2. nicht.
    Wer kapiert das?
    Danke



  • kapier deinen source net. Wo weisst du deinem Zeiger Speicher zu?



  • Initialisier mal deine Variabeln ordentlich auf NULL...

    struct Vierbit *bfZeiger_4 = NULL;
    struct Vierbit *rueckgabe  = NULL;
    FILE           *datei      = NULL;
    

    Und du wirst sehen dass keine deiner Varianten läuft....


Anmelden zum Antworten