Невозможно прочитать переменную класса памяти

У меня есть следующие классы:

main.cpp

Display* display_obj;
void display_wrapper()
{
 display_obj->display();
}

void main(int argc, char **argv)
{
 //...
 State* s = new State(100);

 glutReshapeFunc(reshape_wrapper);
 display_obj->setState(s);
 //...
}

Display.h

class Display
{
public:
 Display(){}
 ~Display(){};

 void display();
 void setState(State*);

private:
 State* state;
};

//...

void Display::setState(State* s)
{
 state = s;
}

State.h

class State
{
public:
 State(){};
 State(int);
 ~State(){};

private:
 GLint timer;
 Floor floor;
};

State::State(int t)
{
 timer = t;

 FloorLogical floorLogical;
 floor = floorLogical.createFloor();
}

Когда я запускаю код, я получаю в инструкции следующее исключение:

state = s;

Исключение: Необработанное исключение в 0x00F96719 в файле project_name.exe: 0xC0000006: место записи нарушения доступа 0x00000000.

Что не так?

1 ответ

display_obj не инициализируется. Вы должны инициализировать эту переменную, прежде чем сможете ее использовать.

licensed under cc by-sa 3.0 with attribution.