ncurses: WINDOW pointer in einer klasse -> Speicherzugriffsfehler



  • hi,
    ich weiß jetzt nicht ob der post hier richtig ist, also seit bitte nicht böse und verschiebt ihn einfach.
    ich hab ein problem wie im titel schon beschrieben bei dem pointer auf WINDOW.

    hier mal ein minimalbeispielprogramm:

    #include <ncurses.h>
    
    class tBeispiel
    {
    	public:
    	void Init(int Height, int Width, int StartY, int StartX);
    
    	private:
    	WINDOW *Win;
    };
    
    int main()
    {
    	initscr();
    	refresh();
    
    	tBeispiel *Beispiel;
    	Beispiel->Init(LINES, COLS, 0, 0);
    
    	getch();
    
    	delete Beispiel;
    	endwin();
    
    	return 0;
    }
    
    void tBeispiel::Init(int Height, int Width, int StartY, int StartX)
    {
    	Win = newwin(Height, Width, StartY, StartX);
    	box(Win, 0, 0);
    	wrefresh(Win);
    }
    

    normalerweise sollte ein fenster das so groß ist wie die gesamte konsole erstellt werden welches von einem rahmen umgeben ist. doch komischerweise kommt beim ausführen nur die meldung "Speicherzugriffsfehler" und das programm wird abgebrochen.

    ich konnte den fehler auf folgende zeile eingrenzen:

    Win = newwin(Height, Width, StartY, StartX);
    

    und wenn ich *Win nicht in der klasse, sondern global definiere gibt es keine probleme.

    Wieso? und was kann man da machen?
    ich bin absolut ratlos

    mfg



  • Hi,

    vielleicht überhaupt erstmal ein Objekt erstellen?

    tBeispiel *Beispiel = new tBeispiel;



  • loool

    ich wusste das es wieder so ne dumme sache ist, hab ich total vergessen.

    vielen dank


Anmelden zum Antworten