C++ C++/SDL2 IMG_加载错误(内存不足)

C++ C++/SDL2 IMG_加载错误(内存不足),c++,sdl-2,C++,Sdl 2,我正在做一个射击游戏,遇到了一个问题,在一段时间内,连续射击后,精灵根本无法加载。在我的控制台中,会打印出一个错误: “IMG_LOAD_ERROR:内存不足”(“IMG_LOAD_ERROR:”是我自己的事) 我还使用文本(SDL_ttf)显示弹药数量 我现在的假设是,我总是在生成的每个敌人的构造函数中调用IMG_load函数,但我甚至不确定这是否是导致它的原因。我还能想到更多的可能性 此外,我会在纹理被破坏时释放它们(当敌人失去健康或离开屏幕时) 有人能帮我理解这一点并帮我修复吗?看来你没有

我正在做一个射击游戏,遇到了一个问题,在一段时间内,连续射击后,精灵根本无法加载。在我的控制台中,会打印出一个错误:

“IMG_LOAD_ERROR:内存不足”(“IMG_LOAD_ERROR:”是我自己的事)

我还使用文本(SDL_ttf)显示弹药数量

我现在的假设是,我总是在生成的每个敌人的构造函数中调用IMG_load函数,但我甚至不确定这是否是导致它的原因。我还能想到更多的可能性

此外,我会在纹理被破坏时释放它们(当敌人失去健康或离开屏幕时)


有人能帮我理解这一点并帮我修复吗?

看来你没有破坏你不需要的纹理/图像或渲染

SDL_纹理(img); SDL_渲染器(渲染器)

我找到了一个简单的画图像的例子

我的建议是:你应该加载所有的纹理,或者开始应用程序,或者在需要的时候加载,但必须加载一次。您必须重复使用每个相同的图像


很高兴看到代码来找出代码的错误。

似乎您没有破坏不需要的纹理/图像或渲染

SDL_纹理(img); SDL_渲染器(渲染器)

我找到了一个简单的画图像的例子

我的建议是:你应该加载所有的纹理,或者开始应用程序,或者在需要的时候加载,但必须加载一次。您必须重复使用每个相同的图像


很高兴看到代码来找出代码的错误。

我很惊讶您承认您没有提供代码,但仍然没有提供代码。您是否意识到我们要求您的代码找出它的错误?它是在同一个映像上发生的还是在程序运行后的某个时间发生的?如果是后者,您可能没有释放以前分配的内存(请参阅@Novros-answer)。如果valgrind可以在您的操作系统上运行,它可能是发现此类错误的最简单工具。如果没有-有专门设计用于查找泄漏的替代方案,但它们可能不像valgrind那样冗长和直截了当。看到源代码会很好,但如果您知道这一点,但仍然没有发布代码-我怀疑这对于这个问题来说可能太大了。我很惊讶您承认您没有提供代码,但仍然没有提供代码。您是否意识到我们要求您的代码找出它的错误?它是在同一个映像上发生的还是在程序运行后的某个时间发生的?如果是后者,您可能没有释放以前分配的内存(请参阅@Novros-answer)。如果valgrind可以在您的操作系统上运行,它可能是发现此类错误的最简单工具。如果没有-有专门设计用于查找泄漏的替代方案,但它们可能不像valgrind那样冗长和直截了当。看到源代码会很好,但如果你知道这一点,但仍然没有发布代码-我怀疑这可能对这个问题来说太大了。对不起,我忘了提到我正在释放敌方析构函数中的内存。*facepalm*对此表示抱歉:|。对不起,我忘了提到我正在释放敌人的析构函数中的内存。*facepalm*很抱歉:|。