首页 文章

如何修复此错误访问冲突读取位置0x00000008 [重复]

提问于
浏览
2

这个问题在这里已有答案:

0x00814477中的第一次机会异常只有一个more.exe:0xC0000005:访问冲突读取位置0x00000008 . 0x00814477处的未处理异常只有一个more.exe的时间:0xC0000005:访问冲突读取位置0x00000008 .

//我相信这与NULL和操作系统有关,但我不确定如何解决这个问题

GameObject::GameObject()
{
    sprite = NULL;
    pos.x = 0; pos.y = 0;
    vel.x = 0; vel.y = 0;

    framenum  = 0;
    numframes = 0;
}

GameObject::~GameObject()
{
    if ( sprite != NULL )
        SDL_FreeSurface( sprite );
}   

void GameObject::LoadImage(std::string filename)
{
    sprite = IMG_Load( filename.c_str() );
    //clip.x = 0;
    //clip.y = 0;
    clip.w = sprite->w;           //It breaks here 
    clip.h = sprite->h;          // and here 
}

2 回答

  • 6

    这个函数调用:

    sprite = IMG_Load( filename.c_str() );
    

    很可能会回来 NULL . 您应该查看相关文档,了解可能的原因并更正相关错误 .

  • 5

    精灵似乎是空的 . 检查IMG_Load的返回 . 很可能你的文件名不正确 .

相关问题