当使用 SDL_Surface
处理图像时,我遇到了在同一指针上运行 SDL_FreeSurface(SDL_Surface *)
( doc ) 两次会产生分割的问题过错。
我明白为什么会发生这种情况,但我需要知道如何避免这种情况。我想检查指针的状态(确定它是否指向现有表面),然后仅在必要时释放表面。
我该怎么做?
最佳答案
您编写了一个封装 SDL_Surface 指针的类,该指针在其析构函数中释放表面。此外,确保正确实现或禁用复制构造函数和赋值运算符。 (参见 The rule of 3)然后,您再也不会直接使用 SDL_Surface 指针。
Here's an example of a wrapper around SDL that I was working on a while ago.
我一得知 SFML 就停止了工作.
关于c++ - 检查表面是否在 SDL_FreeSurface 之前被释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7850422/