l SDL_BlitSurface(tileSheets.at(sheet),& clip [tile],screen,& tileBox);在SDL_blitsurface中使用SDL_Rect向量时,出现C++运行时错误
工作得很好,我initiliaze剪辑这样的:
clip[ 0 ].x = x;
clip[ 0 ].y = y;
clip[ 0 ].w = 48;
clip[ 0 ].h = 48;
x += 48;
clip[ 1 ].x = x;
clip[ 1 ].y = y;
clip[ 1 ].w = 48;
clip[ 1 ].h = 48;
在所有
SDL_BlitSurface(tileSheets.at(sheet), &clip.at(tile), screen, &tileBox);
然而,这不工作我用来初始化他们是这样的:
for(int i = 0; i < number; i++)
{
SDL_Rect clipBox = {x,y,48,48};
clip.push_back(clipBox);
}
这是我得到的错误:http://imageshack.us/photo/my-images/836/83468944.png/
任何线索?
好像你正在过多索引阵列('在()'抛出excaption当索引超出范围,'[]'上相同的索引是未定义的行为) - 当你调用集合上的'push_back()'时,确保你的'tile'在0和'number-1'(包含范围)内 – Attila