Variablen total verrückt
-
#pragma hdrstop #include <condefs.h> #include <iostream> #include <stdio> //--------------------------------------------------------------------------- #pragma argsused int Spielr(); struct struct_Spieler { int iStr,iDex,iExp,iLevel,iLevelup; int iAttributverteilpunkte,iLebenspunkte,imaxLebenspunkte; int iAC,iAngriffswurf,iSchadenswurf; }; int main(int argc, char **argv) { struct_Spieler Spieler; Spielr(); cout<<"Str "<<Spieler.iStr<<endl<<"Dex "<<Spieler.iDex<<endl<<"Exp "<<Spieler.iExp<<endl<<"Level "<<Spieler.iLevel<<endl<<"ben. Exp "<<Spieler.iLevelup<<endl; cout<<"verf. Attributp. "<<Spieler.iAttributverteilpunkte<<endl<<"Lebenspunkte "<<Spieler.iLebenspunkte<<endl<<"max. Lebensp. "<<Spieler.imaxLebenspunkte<<endl; cout<<"Verteidigung "<<Spieler.iAC<<endl<<"Angriffswurf "<<Spieler.iAngriffswurf<<endl<<"Schadenswurf "<<Spieler.iSchadenswurf; getchar(); return 0; } int Spielr() { struct_Spieler Spieler; Spieler.iDex=0; Spieler.iLevel=1; Spieler.iLevelup=1000; Spieler.iLebenspunkte=30; Spieler.imaxLebenspunkte=30; Spieler.iAC=10; return 0; }
Ausgabe:
Str 0
Dex 2011535634
Exp 4331912
Level 4204893
ben. Exp 4331912
verf. Attributpunkte 1245104
Lebenspunkte 0
max Lebenspunkte 4321560
Verteidigung 4285276
Angriffswurf 4354372
Schadenswurf 1Habt ihr das gleiche?Das ist der komplette Code und das ergebnis.
Also ich hab jetzt mal genauer nach dem Fehler gesucht und diesen Teil getestet.Und dort ist das woran es liegt.Aber ich sehe darin keinen Fehler, wieso die Variablen so komische werte haben.
[ Dieser Beitrag wurde am 07.10.2002 um 14:28 Uhr von sic editiert. ]
[ Dieser Beitrag wurde am 07.10.2002 um 14:31 Uhr von sic editiert. ]
-
[ Dieser Beitrag wurde am 07.10.2002 um 14:30 Uhr von sic editiert. ]
-
Hallo Sic,
in Deiner Funktion Spielr() legst Du dir ja eine lokale Struktur Spieler an und initalisierst diese. Die Struktur Spieler in der main-Funktion wird nicht initialisert und enthält irgenwelche zufälligen Werte.
Probiers mal so:
#pragma argsused int Spielr(); struct struct_Spieler { int iStr,iDex,iExp,iLevel,iLevelup; int iAttributverteilpunkte,iLebenspunkte,imaxLebenspunkte; int iAC,iAngriffswurf,iSchadenswurf; }; struct_Spieler Spieler; int main(int argc, char **argv) { Spielr(); cout<<"Str "<<Spieler.iStr<<endl<<"Dex "<<Spieler.iDex<<endl<<"Exp "<<Spieler.iExp<<endl<<"Level "<<Spieler.iLevel<<endl<<"ben. Exp "<<Spieler.iLevelup<<endl; cout<<"verf. Attributp. "<<Spieler.iAttributverteilpunkte<<endl<<"Lebenspunkte "<<Spieler.iLebenspunkte<<endl<<"max. Lebensp. "<<Spieler.imaxLebenspunkte<<endl; cout<<"Verteidigung "<<Spieler.iAC<<endl<<"Angriffswurf "<<Spieler.iAngriffswurf<<endl<<"Schadenswurf "<<Spieler.iSchadenswurf; getchar(); return 0; } int Spielr() { Spieler.iDex=0; Spieler.iLevel=1; Spieler.iLevelup=1000; Spieler.iLebenspunkte=30; Spieler.imaxLebenspunkte=30; Spieler.iAC=10; return 0; }
Schöner ist es natürlich wenn man die Struktur Spieler der Funktion Spielr als Parameter übergibt. Dann braucht man auch keine Globale Struktur.
MfG Neo
EditBySideWinder: Hier ist es üblich Code-Tags zu benützen!
[ Dieser Beitrag wurde am 07.10.2002 um 15:19 Uhr von SideWinder editiert. ]