这样做是否安全:
SDL_Window* window = NULL;
SDL_DestroyWindow(window);
或者我必须这样做:
if(window != NULL)
{
SDL_DestroyWindow(window);
}
我知道在stdlib.h中使用free(void *)释放空指针是安全的,但我想知道SDL函数是否也是如此
答案 0 :(得分:3)
The documentation doesn't say either way,但我可以从v2.0.3源代码中看到SDL_DestroyWindow
确实有针对空指针输入的保护。
话虽如此,它没有文档记录,我甚至不能保证这个CHECK_WINDOW_MAGIC
宏在所有构建模式中的可靠性,所以你应该采用if
语句方法。
此外,如果你有一个NULL窗口,那我就会质疑你的设计。