【发布时间】:2016-10-04 22:59:42
【问题描述】:
我正在制作一个射击游戏,并且遇到了一个问题,即在一定时间和连续射击后,精灵根本无法加载。在我的控制台中,打印出一个错误:
“IMG_LOAD_ERROR : Out of memory”(“IMG_LOAD_ERROR :”是我自己的东西)
我还使用文本 (SDL_ttf) 来显示弹药数量。
我现在的假设是我总是在每个生成的敌人的构造函数中调用 IMG_load 函数,但我什至不确定这是否是导致它的原因。我能想到的可能性还有很多。
另外,我会在纹理被破坏时释放它们(当敌人失去健康或离开屏幕时)。
有人能帮我理解这个问题并帮我解决吗?
【问题讨论】:
-
我很惊讶你承认你没有提供代码,但仍然没有提供代码。您是否意识到我们要求您的代码找出问题所在?
-
它是发生在同一个图像上还是在程序运行后的某个时间发生?如果是后者,您可能没有释放您之前分配的内存(请参阅@Novros 答案)。如果 valgrind 可以在您的操作系统上运行,它可能是最容易找到此类错误的工具。如果没有 - 有专门用于查找泄漏的替代方案,但它们可能不像 valgrind 那样冗长和直接。看到源代码会很好,但如果你知道这一点并且仍然没有发布代码 - 我怀疑它可能对这个问题来说太大了。