我试图释放一堆不同类型的东西,所以我想我可能可以通过将它们添加到一堆void *单元格中,使用一个函数释放所有这些东西。我的问题是:将SDL_Surface*保存为void *并使用free()函数而不需要SDL_FreeSurface()是否安全?
void *
SDL_Surface*
free()
SDL_FreeSurface()
wecizke31#
不,必须使用SDL_FreeSurface。(证据:它做什么)除非在特殊情况下,否则只使用一个自由函数而不使用另一个自由函数是不安全的。你用malloc分配free的东西。你用CreateFile打开CloseHandle的东西(在Windows上)。你用fopen打开fclose的文件。等等。
SDL_FreeSurface
malloc
free
CreateFile
CloseHandle
fopen
fclose
1条答案
按热度按时间wecizke31#
不,必须使用
SDL_FreeSurface
。(证据:它做什么)除非在特殊情况下,否则只使用一个自由函数而不使用另一个自由函数是不安全的。你用
malloc
分配free
的东西。你用CreateFile
打开CloseHandle
的东西(在Windows上)。你用fopen
打开fclose
的文件。等等。