invalid application of 'sizeof' to incomplete type 'adressen'



  • Folgendes Beispiel aus dem Buch "C von A bis Z":

    struct {
       char name[20];
       char vornam[20];
       char wohnort[30];
       int alter;
       int plz;
       char Strasse[30];
    } adressen;
    FILE *quelle;
    strcpy(adressen.name, "George W.");
    strcpy(adressen.vornam, "Bush");
    strcpy(adressen.wohnort, "Washington D.C");
    adressen.alter = 55;
    adressen.plz = 23223;
    ...
    if((quelle=fopen("adres.dat", "w+b")) == NULL)
    ...
    fwrite(&adressen, sizeof(struct adressen), 1, quelle);
    

    Habe ich leicht ergänzt und dann kompiliert, der Code sieht jetzt so aus:

    #include <stdio.h>
    #include <string.h>
    
    struct {
        char name[20];
        char vornam[20];
        char wohnort[30];
        int alter;
        int plz;
        char Strasse[30];
    } adressen;
    
    int main(void)
    {
        FILE *quelle;
        strcpy(adressen.name, "George W.");
        strcpy(adressen.vornam, "Bush");
        strcpy(adressen.wohnort, "Washington D.C");
        adressen.alter = 55;
        adressen.plz = 23223;
        if((quelle=fopen("adres.dat", "w+b")) == NULL)
        {
            printf("Konnte nicht in adres.dat schreiben.\n");
        }
        fwrite(&adressen, sizeof(struct adressen), 1, quelle);
    }
    

    Allerdings kommt beim kompilieren die im Titel genannte Fehlermeldung.



  • Es gibt kein struct adressen . adressen ist eine Variable. Versuchs mal so:

    ...
    fwrite(&adressen, sizeof adressen, 1, quelle);
    ...
    

Anmelden zum Antworten