SDL2 自由空指针

SDL2 free null pointer

这样做安全吗:

SDL_Window* window = NULL;
SDL_DestroyWindow(window);

或者我必须这样做:

if(window != NULL)
{
    SDL_DestroyWindow(window);
}

我知道在 stdlib.h 中使用 free(void*) 释放空指针是安全的,但我想知道 SDL 函数是否也是如此

The documentation doesn't say either way,但是我从v2.0.3的源代码可以看出,SDL_DestroyWindow确实有防止空指针输入的保护。

也就是说,它没有记录,我什至不能保证这个 CHECK_WINDOW_MAGIC 宏在所有构建模式下的可靠性,所以你应该采用 if 语句方法。

此外,如果你可以有一个 NULL window 那么我质疑你的设计。