好的,所以我有这段代码,它只是遍历我的对象数组,对需要被块传输的内容进行分组:
void Render()
{
for(int Index = 0; Index < MAX_OBJECT_INSTANCES; Index++)
{
if(Game::ObjectArray[Index].IsActive() == false){}
else
{
if(Game::ObjectArray[Index].IsHidden() == false)
{
SDL_BlitSurface(Game::ObjectArray[Index].CurrentSprite, NULL, Buffer::Screen, &Game::ObjectArray[Index].Position);
}
}
}
}
我查看了调用堆栈,发现:
0x681247d8 SDL_UpperBlit
我不知道如何解决这个问题。我还应该注意的是,我使用的是 SDL 混合器和 SDL 映像。
- 在调试器中运行代码。
- 步入
SDL_BlitSurface()
通话。 - 验证参数是否正确。
- 继续步进,看看是什么导致了分段错误。
我怀疑一个或多个论点是错误的/无效的。