Wiso funktionier meine Klasse nicht



  • Hallo. Bin Wütend 😡

    Wiso funktioniert dass nicht:

    //Includes
    
    #include <iostream>
    
    using namespace std;
    
    //Klasse
    class CSpielfeld 
    {
    private:
    	struct FeldInfo     //Feldinformationen 
        {
    	bool Besetzt;
        };
    	int map_breite;
    	int map_hoehe;
        FeldInfo Karte[5][5];
    public: 
    
    	CSpielfeld()
    	{
    		map_breite = 20;
    		map_hoehe = 20;
    
    		//Das Feld mier Grünen Wiesen Füllen
            for(int i = 0;i<map_hoehe;i++)
    		{
    			for(int j=0;i<map_breite;j++)
    			{
    				Karte[j][i].Besetzt = false;
    			}
    			cout << endl;
    		 }  // ende Spielfeld mit Daten Füllen
    
    	} // Spielfeld
        void DrawMap()
    	{
            for(int i = 0;i<map_hoehe;i++)
    		{
    			for(int j=0;i<map_breite;j++)
    			{
    				if(Karte[j][i].Besetzt == true)
    					cout << "X";
    				else
    					cout << ".";
    			}
    			cout << endl;
    		}  
    
    	}  //Void Draw Map
    };
    
    int main()
    {
    	int halter;
    	CSpielfeld  Spielfeld;
    	Spielfeld.DrawMap();
    	cin >> halter;
    	cin >> halter;
    
    }
    

    Wiso funktioniert dass nicht es kommt immer so ein hässlicher Fehler:

    Durch einen Pufferüberlauf in 2d_array_test.exe wurde der interne Programmzustand beschädigt. Klicken Sie auf "Unterbrechen", um das Programm zu debuggen, oder auf "Weiter", um es zu beenden.
    
    Weitere Informationen finden Sie im Hilfethema "Gewusst wie: Debuggen von Pufferüberlaufproblemen".
    


  • Hallo,
    warum weist Du 20 x 20 Werte einem FeldInfo Karte[5][5]-Array zu?



  • @Wutanfall: Außerdem solltest du in den beiden inneren Schleifen wohl j und nicht i in der Abbruch-Bedingung verwenden.

    Gruß Caipi



  • Hallo

    du definierts ein Array der Dimensionen 5x5, aber iterierst über 20x20.

    /edit : viel zu langsam

    bis bald
    akari



  • und wofür ist das:

    int halter;
    ...
    cin>>halter;
    

    dafür das das Fenster sich nicht schließt?

    wenn ja, schau mal in die FAQ WIn32/Konsole....;)



  • ser1al schrieb:

    und wofür ist das:

    int halter;
    ...
    cin>>halter;
    

    dafür das das Fenster sich nicht schließt?

    wenn ja, schau mal in die FAQ WIn32/Konsole....;)

    Ich denke mal er erspart uns den Rest seines main Parts.


Anmelden zum Antworten