c++ - SDL2 释放空指针

标签 c++ c sdl sdl-2

这样做安全吗:

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 窗口,那么我会质疑你的设计。

关于c++ - SDL2 释放空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31752896/

相关文章:

c++ - 评估多重积分

采用 BNF 定义并进行相应解析的 C 库?

c - 如何在 Qt Creator 中为 Clang 静态分析器设置语言标准 (-std)

更改子进程的偏移量

c++ - 未解析的外部符号,即使我认为我链接正确(MSVC)

C++ - 一次读入一个单词

c++ - std::istreambuf_iterator<char> 初始化时没有参数?

c - SDL2 音频回调限制为 8 位?

multithreading - SDL-Mixer 音频在启动 Reactive-Banana 输入循环时停止

c++ - 用作模板类型时,size_t 类型和 int 类型的用法有何区别?