我正在编写一个函数来将菜单屏幕渲染到我的sdl_window,但是我在函数中遇到了巨大的内存泄漏,我将文本渲染到表面。我运行TTF_RenderText_Solid,将新曲面blit到主曲面并使用SDL_FreeSurface释放文本界面,如下面的代码所示。
void show_button(SDL_Surface *surface, button_t *button) {
SDL_Surface *tmp = NULL;
tmp = TTF_RenderText_Solid(button->font, button->name,button->color);
SDL_BlitSurface(tmp, NULL, surface, &button->box);
SDL_FreeSurface(tmp);
return;
}
任何帮助都会受到赞赏,因为我不明白为什么SDL_FreeSurface调用无法解决问题。