SDL_Surface
を使用して画像を処理すると、同じポインタでSDL_FreeSurface(SDL_Surface *)
(doc)を2回実行するとセグメンテーションフォルトが発生するという問題が発生します。SDL_FreeSurfaceの前にサーフェスが解放されているかどうかをチェック
私はそれがなぜ起こるのか理解していますが、私はそれを避ける方法を知る必要があります。私はポインタの状態を確認したいです(既存のサーフェスを指しているかどうか調べてください)。そして必要な場合にのみサーフェスを解放します。
どうすればいいですか?
ポインタを最初に削除した後にNULLに設定することができます。しかし、優れたデザインでは、最初に2回削除する必要はありません。 RAII(http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization)を参照してください。 – jrok
@jrok:本当に、私は簡単な方法を探していたと思う。怠け者であることを私に恥ずべき。 :-P – Malabarba