У меня есть два класса Display и Snake.С классом Display у меня есть некоторые функции, которые включают создание буфера и т. Д. Я пытаюсь сделать что-то, что кажется мне логичным, но, по-видимому, не компилятору
cSnake.h
class Snake
{
public:
Snake();
void printSnake();
~Snake();
private:
Display* display;
};
cSnake.cpp
Snake::Snake() {}
void Snake::printSnake() {
display->PrintCharecter(40, 15, L" Hello World ");
}
Snake::~Snake() {}
Это класс Display
Class Display{
public:
void CreateScreenBuffer();
void DisplayFrame();
void PrintCharecter(int x, int y LPCWSTR text);
private:
int nScreenWidth;
int nScreenHeight;
wchar_t *screen;
}
// The function that I try to call
void Display::PrintCharecter(int x, int y, LPCWSTR text) {
wsprintf(&screen[y* nScreenWidth + x], text); // exception is thrown here
}
Вызов его в главном
Snake snake
snake.printSnake();
Затем он генерирует бесполезное исключение, которое,Будучи нулевым указателем.Я немного смущен, какой указатель NULL это вызов функции или экран массива?