如何修复“抛出异常:读取访问冲突。 **表面**是nullptr。发生在SDL2 C ++中

问题描述 投票:0回答:1

我试图用c ++学习SDL2,

每当我尝试填补表面时,我都会收到此错误,在互联网上搜索解决方案,但尚未找到答案:

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

每次我运行它,它都不会显示错误,但它会破坏代码并显示一个X和一个带有“抛出异常:读取访问冲突。表面为nullptr”的文本框。靠近FillRect线。我可以单击“复制详细信息”然后复制“抛出异常:读取访问冲突。**表面**是nullptr。发生”

c++ visual-studio sdl-2
1个回答
0
投票

你需要使用类似的东西

SDL_CreateRGBSurface

而不是NULL。因为你不能写出内存中不存在的东西。

PS

将来使用nullptr代替NULL

© www.soinside.com 2019 - 2024. All rights reserved.