当使用SDL_Surface s处理图像时,遇到一个问题,即在同一指针上两次运行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/

10-13 09:08