使用SDL_Surface
来处理图像时,我遇到了在同一指针上运行SDL_FreeSurface(SDL_Surface *)
(doc)两次产生分段错误的问题。
我理解为什么会这样,但我需要知道如何避免这种情况。我想检查指针的状态(找出它是否指向现有表面),然后仅在必要时释放表面。
我该怎么做?
答案 0 :(得分:4)
您编写了一个封装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,我就停止了工作。