【发布时间】:2026-01-29 18:45:01
【问题描述】:
这段代码将解释剧情:
// on init:
m_mainWindow = SDL_CreateWindow("title", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 480, 640, SDL_WINDOW_SHOWN);
m_mainRenderer = SDL_CreateRenderer(m_mainWindow, -1, 0); // + 8 Mb of memory
// on screen resize when my ios sends SDL_WINDOWRESIZED:
SDL_DestroyRenderer(m_mainRenderer); // - 1!!! Mb of memory
m_mainRenderer = SDL_CreateRenderer(m_mainWindow, -1, 0); // + 6 Mb of memory
我无法完全销毁渲染器并清除它的内存。为什么?以及我在这里做错了什么?
【问题讨论】:
-
试试循环调用,内存占用会不会增加?
-
题名有误导,我觉得不能叫内存泄漏。很可能是某些系统(或 SDL)内存分配诡计。
-
如何测量内存变化??
-
您使用的是 C 还是 C++?根据代码示例,它似乎是 C。不管 请不要同时标记 C 和 C++ 的问题,每种语言都有非常不同的答案
-
我在会话中做了几次,仅通过这个操作它就从 38 Mb 增长到 600+。使用任务管理器查看内存活动并使用 C++ 编写。对不起标签。我是*的新手,它以某种方式自动标记了我的问题。
标签: c++ memory memory-leaks sdl sdl-2