2

0x00814477 处的第一次机会异常,在 Only time for one more.exe:0xC0000005:访问冲突读取位置 0x00000008。0x00814477 处未处理的异常仅一次再运行一个.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 
}
4

2 回答 2

6

这个函数调用:

sprite = IMG_Load( filename.c_str() );

很可能回归NULL。您应该检查相关文档以了解原因并更正相关错误。

于 2013-07-15T22:46:46.543 回答
5

雪碧似乎为空。检查 IMG_Load 的返回。很可能您的文件名不正确。

于 2013-07-15T22:46:57.283 回答