Pointer Struct, Werte zuweisen klappt nicht.



  • Hallo,

    ich habe folgendes Problem und folgende Struct´s:

    typedef struct
    {
        char *name;  
        int alter;
    } PERSON;
    
    typedef struct
    {
        int a;
        int b;
        MITARBEITER PERSON[20];
    
    } DATABASE;
    

    Beim setzen der Werte durch die Funktion:

    void setze(DATABASE *db)
    {
        db->sum = 1;
        db->change = 2;
    }
    

    Wird nur "a" gesetzt und nicht "b"(Dieser erhält einen völlig anderen Wert) Wieso das?

    Funktionaufruf:

    DATABASE *db;
     a(&db);
     printf("A:%i\n", &db->a); //1
    
     printf("B:%i\n", &db->b);//NICHT 2
    

    Was mache ich falsch?

    Vielen Dank schon einmal.



  • Oben muss es natürlich heißen:

    typedef struct
    {
        int a;
        int b;
        PERSON pers[20];
    
    } DATABASE;
    


  • gast2345 schrieb:

    db->sum = 1;
    db->change = 2;

    Was sind denn jetzt sum und change, meinst du a und b?

    gast2345 schrieb:

    a(&db);

    Was ist das denn?

    gast2345 schrieb:

    printf("A:%i\n", &db->a); //1
    printf("B:%i\n", &db->b);//NICHT 2

    printf-Argumente werden als Wert und nicht als Adresse übergeben, du musst also db->a statt &db->a übergeben.



  • Natürlich meinte ich oben a und b.

    Tut mir Leid wegen der Schreibfehler 🙄


Anmelden zum Antworten