Probleme mit struct als Parameter



  • Hallo,

    Könnte mir mal bitte jemand kurz erklären, warum mir der folgende Code nur die Speicheradressen der Strukturmitglieder ausgibt und nicht die eingelesenen Werte.

    #include <iostream>
    
    using namespace std;
    
    struct person{
      int alter,groesse,gewicht;
    };
    
    void eingabe(person x){
     cout<<"Bitte geben sie Ihr Alter ein!"<<endl;
      cin>>x.alter;
      cout<<"Bitte geben sie Ihre Groesse ein!"<<endl;
      cin>>x.groesse;
      cout<<"Bitte geben sie Ihr Gewicht ein!"<<endl;
      cin>>x.gewicht;
    }
    
    void ausgabe( person x){
     cout<<"Ihr Gewicht:"<<x.gewicht<<endl
          <<"Ihre Groesse: "<<x.groesse<<endl
          <<"Ihr Alter: "<<x.alter<<endl;
    
    }
    
    int main(){
      person thomas;
      eingabe(thomas);//Hier gibt er mir nur die Speicheradresser der Members aus
      ausgabe(thomas);//Hier gibt er mir nur die Speicheradresser der Members aus
    
      return 0;
    
    }
    

    Irgendwie stelle ich mich bei der Parameterübergabe zu blöd an.
    Ich denke das es für euch sehr leicht zu lösen ist.

    Vielen Dank schon jetzt...

    Grüsse aus Bärlin



  • Mr.Catdriver schrieb:

    void eingabe(person x){
    ..
    }
    void ausgabe( person x){
    ...
    }
    

    mach vor das 'x' ein &-zeichen...



  • Vielen Dank erstmal..

    Also es geht nur mit Adreßoperator, obwohl ich ja offiziell keine Zeiger deklariert habe?



  • Du musst die Strukturen als Referenz übergeben! 🙂



  • Mr.Catdriver schrieb:

    Vielen Dank erstmal..

    Also es geht nur mit Adreßoperator, obwohl ich ja offiziell keine Zeiger deklariert habe?

    Das & Zeichen kann auch für eine referenz stehen, deswegen würde ich es auch nach dem typ schreib also int& bla statt int &bla.

    Infos gibt's bei google oder z.B. hier: http://web.dadanini.com:7980/books/C++ in 21 Tagen/kap09.html

    mfg.



  • Mr.Catdriver schrieb:

    Vielen Dank erstmal..
    Also es geht nur mit Adreßoperator, obwohl ich ja offiziell keine Zeiger deklariert habe?

    nee, das heisst dass du die structs als referenz übergibst. das '&' hat verschiedene bedeutungen, je nachdem wo es steht...



  • OK! Es geht auf jeden Fall so wie ich es mir vorgestellt habe.

    Bis zum Handling von Referenzen bin ich bei c++ noch nicht vorgedrungen!!!

    Vielen Dank für die schnelle Hilfe!


Anmelden zum Antworten