Unbehandelte Ausnahme beim Anfang der main-Funktion



  • guten morgen zusammen,
    wenn ich mein Programm starte, kommt immer eine Messagebox mit der Meldung:

    Unbehandelte Ausnahme bei 0x00417077 in ObjektEditor.exe: 0xC00000FD: Stack overflow.
    

    Ausgelöst wird die Meldung bei der öffnenden Klammer { der main-Funktion. damit kann ich aber überhaupt nichts anfangen; wie könnte ich diesen Fehler beheben??? 😕



  • Da fallen mir gerade zwei mögliche Ursachen ein:
    1.) Rekursiver aufruf der zu tief ist.
    2.) Zuviel Speicher wird von Stack angefordert (z.B. in einer Methode).

    Simon



  • zu 1) rekursiv habe ich garnicht programmiert
    und der 2. punkt klar, aber wie bekomme ich raus, welche funktion das ist, ich habe ja noch garnichts gemacht, das ist die 2. zeile des Quellcodes nach den include dateien... das irritiert mich!



  • Dann zeig uns doch mal die "main" Funktion!
    Oder zumindest *alle* lokalen Variablen die Du dort deklariert hast...



  • Das ist der Anfang der Main-Funktion

    #include <SFML/Graphics.hpp>
    #include <Board/ObjectBoard.h>
    #include <Board/ColorBoard.h>
    //---------------------------------------------------------------
    int main()
    {
        sf::RenderWindow App(sf::VideoMode(800,600),"Objekteditor");
    	CObjectBoard m_ObjBoard(400, 400, 200, sf::Vector2f(20, 20));
    	CColorBoard m_ColBoard(200, 400, sf::Vector2f(450, 20));
     ...
    

    in Zeile 6 wird der Fehler angezeigt.

    Obwohl diese Dateien eigentlich nichts damit zutun haben dürften:
    ObjectBoard.h

    struct ObjArray
    {
    	sf::Color pixel[600][600][600];
    };
    class CObjectBoard : public CBoard
    {
    ...
    private:
    	float fDepth;
    	ObjArray m_oArray;
    	enum ClickStep
    	{
    		CS_FRONT, CS_SIDE														// Step 1 Frontansicht - Step 2 Seitenansicht
    	};												
    	ClickStep m_cStep;
    
    	unsigned int iChangePixelX, iChangePixelY, iChangePixelZ;			// Pixel-Koordinaten von Klicks
    	sf::Color m_ChangeColor;											// von CColorBoard
    
    	sf::Image m_ShowImage;												// angezeigte Pixel
    	sf::Sprite m_ShowSprite;
    	unsigned int m_iShowAngle;
    

    ColorBoard.h

    class CColorBoard : public CBoard
    {
    ...
    private:
    	sf::Shape m_ColorPads[256];
    	unsigned int m_SelectedColorPad;
    	unsigned int m_SelectedGelenkePad;
    	unsigned int iPadSize;
    
    	struct GelenkePads
    	{
    		sf::Shape Pad;
    		sf::String Name;
    	};
    	GelenkePads m_GelPads[13];
    


  • CObjectBoard ist dank ObjArray zu groß für den Stack. Je nachdem, wie groß sf::Color ist, sind das über 800 MByte.



  • ohh ja darauf hätte man ja kommen können; danke!


Anmelden zum Antworten