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!