SDL2.0を使用している場合、SDLがウィンドウやレンダラーを作成できなかった場合は、SDL_Quit()を使用せずにプログラムを停止するのが妥当ですか?初期化に失敗した後でもSDL_Quit()を使用する必要がありますか?
例えば、私は(SDL初期化、窓やレンダラの作成後に)書くことができます。
if (!renderer)
{
fprintf("Error while creating the renderer: %s\n", SDL_GetError());
return -1;
}
SDL_DestroyWindow(window);
IMG_Quit();
SDL_Quit();
return 0;
それとも私が書く必要があります。
if (!renderer)
{
fprintf("Error while creating the renderer: %s\n", SDL_GetError());
SDL_DestroyWindow(window);
SDL_Quit();
return -1;
}
SDL_DestroyWindow(window);
IMG_Quit();
SDL_Quit();
return 0;
私は2番目の選択肢が優れていると思いますしかし、レンダラーが作成されていないときでも、SDLを閉じてウィンドウを破棄することが本当に便利であるかどうかはわかりません。 the SDL Wikiから
ありがとうございました:) レンダラの作成に失敗した場合、以前作成したSDL_Windowを破棄する必要がありますか? – TheMrZZ
あなたは確かにすべきです。 'SDL_Window'と' SDL_Renderer'は別々のエンティティです。 [SDL_DestroyWindow'を 'NULL'ポインタ(https://wiki.libsdl.org/SDL_DestroyWindow)で呼び出すこともできます)、単にエラーメッセージを設定します。それはカップルの 'malloc' /' free'のように考えてください。 – Nelfeal
これはまさに私が知りたかったものです!ありがとうNelxiost。 – TheMrZZ