如何修复SDL2 C ++中的“引发异常:读取访问冲突。**表面**为nullptr。”

时间:2019-03-31 12:31:51

标签: c++ visual-studio sdl-2

我正在尝试使用c ++学习SDL2

每次我尝试填充表面时,都会出现此错误,在互联网上搜索了一种解决方案,但还没有找到一个解决方法:

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

每次我运行此命令时,它不会显示错误,但会破坏代码,并显示一个X和一个小框,其中显示文本“抛出异常:读取访问冲突。Surface为nullptr。”在FillRect行附近。我可以单击“复制详细信息”,然后复制“引发的异常:读取访问冲突。 ** Surface **为nullptr。发生了

1 个答案:

答案 0 :(得分:0)

您需要使用

SDL_CreateRGBSurface

代替NULL。因为您无法写入内存中不存在的内容。

PS

将来用nullptr代替NULL