Как исправить «Возникло исключение: нарушение прав чтения. ** Поверхность ** была nullptr. Произошла» в SDL2 C ++ - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь изучить SDL2 с помощью c ++,

, и каждый раз, когда я пытаюсь заполнить поверхность, я получаю эту ошибку, ищу в интернете решение и еще не нашел его:

SDL_Surface* Surface = NULL;
SDL_FillRect(Surface, NULL, SDL_MapRGB(Surface->format, 0, 255, 0));

каждый раз, когда я запускаю это, он не показывает ошибку, но он ломает код и показывает X и маленькое поле с текстом «Возникло исключение: нарушение прав чтения. Поверхность была nullptr."около линии FillRect.Я могу нажать «Копировать детали», а затем скопировать «Исключение: нарушение прав чтения. ** Поверхность ** была nullptr. Произошла»

1 Ответ

0 голосов
/ 31 марта 2019

Вам нужно использовать что-то вроде

SDL_CreateRGBSurface

вместо NULL. Потому что вы не можете писать в то, что не существует в памяти.

PS

используйте nullptr вместо NULL в будущем

...