在C++中用SDLIVEAL *接收Excel BADIAccess

在C++中用SDLIVEAL *接收Excel BADIAccess,c++,events,sdl,exc-bad-access,C++,Events,Sdl,Exc Bad Access,我读过很多书!EXC_BAD_访问示例,但提供的解决方案中似乎没有一个能解决我遇到的问题。基本上,我有一个类似这样的游戏循环: int GameEngine::Run() { if( this->OnInit() == false ) return -1; SDL_Event Event; while( this->IsRunning ) { while( SDL_PollEvent( &Event )

我读过很多书!EXC_BAD_访问示例,但提供的解决方案中似乎没有一个能解决我遇到的问题。基本上,我有一个类似这样的游戏循环:

int GameEngine::Run()
{

    if( this->OnInit() == false )
        return -1;

    SDL_Event Event;

    while( this->IsRunning )
    {

        while( SDL_PollEvent( &Event ) )
        {

            INPUT->Event( &Event );
            for( int i = 0; i < this->objects.size(); i++ )
            {

                this->objects[i]->OnEvent();

            }

            if( INPUT->Type( SDL_QUIT ) )
               this->Stop();

        }

        this->OnLoop();
        this->OnRender();

    }

    this->OnCleanUp();

    this->PrintObjects();

    return 0;

}
这是造成麻烦的原因。此函数在输入类中类似:

这条线路也给了我EXC\u BAD\u访问权限

因此,输入类中的->Current_事件将始终包含当前事件,因为它将使用最新轮询的事件从游戏循环中更新

目前,我不知道如何在Xcode中获取stacktrace,但如果我进行一些手动跟踪,它将如下所示:

Input::Event()
GameEngine::Run()
main()
然后它进入SDL代码

有人知道这里可能有什么问题吗?如果你还需要知道什么,告诉我

EXC_BAD_ACCESS的意思是,你做了一些事情,导致一个指针指向你的设备内部,或者分配器正在使用的指针被取消引用,并且内存位置不在分配给你的程序的块中


这里使用SDL_事件*时,由于输入未初始化而引发该事件。

您能告诉我们在哪里声明和初始化输入吗?就是这样!显然我并没有初始化输入,只是声明:谢谢你们的帮助!
void Input::Event( SDL_Event* CurrEvent ) { this->Current_Event = CurrEvent; }
Input::Event()
GameEngine::Run()
main()