SDLイベントメモリリーク

SDLにメモリリークの原因となる既知の方法や機能はありますか?

私のプログラムでは、オンになってから1
MBのメモリがプログラムのメモリ使用量に引き継がれていたことがわかりました(つまり、追加の「4
MB」が3分で追加されました)。

私はすべての表面描画/ブリッティング関数をコメントアウトしました。ほとんどの場合、ゲームのメインループをイベント構造と画面反転に分離しました。例:

// .. Intilize
char quit = 0;
Uint8* keystate = NULL;
SDL_Event hEvent;
while (!quit) 
{
   //.. Code

    while (SDL_PollEvents(&hVvent)) {
        keystate = SDL_GetKeystate(NULL);
       //.. Event processing
    }

   //.. More Code

    if (SDL_Flip(screen) == -1)
        return 1

    SDL_Delay(1);
}   
// .. Cleanup
ベストアンサー

メモリリークをチェックする私の好きなツールは、 Valgrind です。 コードをコンパイルしたら、次のコマンドを実行します:

valgrind --leak-check=full --show-reachable=yes ./executable

終了後、メモリリーク情報の出力を確認します。 ツールは、-vフラグを発行することにより、より冗長になります

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です