C++ 土壤异常c++;

C++ 土壤异常c++;,c++,soil,C++,Soil,当我制作游戏时,一切都进行得很顺利,但突然间我在土壤的装载图片上出现了一个奇怪的异常。 这不是在比赛开始时发生的,而是突然发生的,非常奇怪 这是一张照片: 代码如下: bool window::loadTex(std::string fName, int fNum) { textur[fNum] = SOIL_load_OGL_texture ( (char*)fName.c_str(), SOIL_LOA

当我制作游戏时,一切都进行得很顺利,但突然间我在土壤的装载图片上出现了一个奇怪的异常。 这不是在比赛开始时发生的,而是突然发生的,非常奇怪

这是一张照片:

代码如下:

bool window::loadTex(std::string fName, int fNum)
{
        textur[fNum] = SOIL_load_OGL_texture
            (
            (char*)fName.c_str(),
            SOIL_LOAD_AUTO,
            SOIL_CREATE_NEW_ID,
            SOIL_FLAG_MIPMAPS | SOIL_FLAG_INVERT_Y 
            );
        if(textur[fNum] == 0)
            return false;
        return true;
}
以及函数调用:

if(!loadTex(std::string("data/back.png"), 0))
        printf("Can't load image");
太奇怪了。。。当异常发生时,我没有做任何与土壤有关的事情

在Dissambly中有更多关于它的信息,它能帮助你吗

First-chance exception at 0x784FFDEE (msvcr100.dll) in ConsoleApplication6.exe: 0xC0000005: Access violation reading location 0x00000000.

修正!非常感谢

这没什么奇怪的。您有一个运行时错误。可能是代码中的某个地方内存溢出了,这就是问题本身的表现方式。您需要在代码中找到问题所在


找到问题的一种方法是使用调试器查找发生崩溃的对象的错误。可能其中一个指针的值无效。如果此指针中包含垃圾的地址在两次运行之间是一致的,您可以在其地址上放置一个数据断点,并在每次到达数据断点时查看是谁在更改它,以及它是错误流还是正常的正常流。

您需要调试应用程序。在调试器中,发生这种情况时,
texture
的值是多少?这是值的图片当异常发生时,您需要按“中断”按钮进入调试器,或在调试器中启动它(F5而不是CTRL-F5)。然后可以检查所有变量和成员变量的值。这张图片没有说什么,只是你试图访问一个空指针。我发布了另一张图片并进行了编辑,我没有在这里发布正确的图片。正确的图片:你提到过这张图片吗?它说图片加载了异常,你是说它错了吗?@mentaman,从某种意义上说,是的。有时,当您执行“犯罪”时,运行时错误不会表现出来,但在那之后相当长的一段时间,我在sdl|u init中执行了,所以它是错误的。谢谢你的帮助。