我正在尝试使用c ++学习SDL2
每次我尝试填充表面时,都会出现此错误,在互联网上搜索了一种解决方案,但还没有找到一个解决方法:
SDL_Surface* Surface = NULL;
SDL_FillRect(Surface, NULL, SDL_MapRGB(Surface->format, 0, 255, 0));
每次我运行此命令时,它不会显示错误,但会破坏代码,并显示一个X和一个小框,其中显示文本“抛出异常:读取访问冲突。Surface为nullptr。”在FillRect行附近。我可以单击“复制详细信息”,然后复制“引发的异常:读取访问冲突。 ** Surface **为nullptr。发生了
答案 0 :(得分:0)
您需要使用
SDL_CreateRGBSurface
代替NULL
。因为您无法写入内存中不存在的内容。
PS
将来用nullptr
代替NULL