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....