我试图用c ++学习SDL2,
每当我尝试填补表面时,我都会收到此错误,在互联网上搜索解决方案,但尚未找到答案:
SDL_Surface* Surface = NULL;
SDL_FillRect(Surface, NULL, SDL_MapRGB(Surface->format, 0, 255, 0));
每次我运行它,它都不会显示错误,但它会破坏代码并显示一个X和一个带有“抛出异常:读取访问冲突。表面为nullptr”的文本框。靠近FillRect线。我可以单击“复制详细信息”然后复制“抛出异常:读取访问冲突。**表面**是nullptr。发生”
你需要使用类似的东西
SDL_CreateRGBSurface
而不是NULL
。因为你不能写出内存中不存在的东西。
PS
将来使用nullptr
代替NULL