正确释放 SDL_Surface?
freeing an SDL_Surface correctly?
我可以这样做来释放我的 SDL_Surface* 冲浪吗:
SDL_Surface* surf;
for(int i = 0; i < 5; i++){
surf = TTF_RenderText_Blended(foofont, foostring, foocolor);
}
SDL_FreeSurface(surf);
surf = NULL;
或者这会导致内存泄漏吗?
已编辑:根据我对文档的理解,这会导致泄漏。
看到你基本上调用函数 5 次,每次都创建一个新的表面。也就是说,您每次都需要释放所有表面。
所以
for(int i = 0; i < 5; i++)
{
surf = TTF_RenderText_Blended(foofont, foostring, foocolor);
SDL_FreSurface(surf)
}
surf = NULL;
您可以在此处阅读文档:
https://www.libsdl.org/projects/docs/SDL_ttf/SDL_ttf_44.html
我可以这样做来释放我的 SDL_Surface* 冲浪吗:
SDL_Surface* surf;
for(int i = 0; i < 5; i++){
surf = TTF_RenderText_Blended(foofont, foostring, foocolor);
}
SDL_FreeSurface(surf);
surf = NULL;
或者这会导致内存泄漏吗?
已编辑:根据我对文档的理解,这会导致泄漏。 看到你基本上调用函数 5 次,每次都创建一个新的表面。也就是说,您每次都需要释放所有表面。 所以
for(int i = 0; i < 5; i++)
{
surf = TTF_RenderText_Blended(foofont, foostring, foocolor);
SDL_FreSurface(surf)
}
surf = NULL;
您可以在此处阅读文档:
https://www.libsdl.org/projects/docs/SDL_ttf/SDL_ttf_44.html