每当我关闭它时,我的程序上都会出现一个sigsegv / sigabrt(使用alt + f4时关闭sigsev,使用窗口按钮关闭时使用sMLabrt [使用SFML])
注释移动(〜)的调用将导致程序的正常退出
for(unsigned char i = static_cast<unsigned char>(duckies.size()); i > 0 ; i--){
if(duckies[i].coordinates != duckies[i - 1].coordinates)
duckies[i].move(duckies[i - 1].direction);
}
鸭子是Ducky的std :: vector,移动(〜)是
void Ducky::move(Direction new_dir){
direction = new_dir;
switch(direction){
case UP:
--coordinates.y;
break;
case DOWN:
++coordinates.y;
break;
case LEFT:
--coordinates.x;
break;
case RIGHT:
++coordinates.x;
break;
default:
break;
}
}
(Direction是枚举,坐标是2 int)
请注意,此函数在程序执行期间调用,而不是在退出时调用。
如果您对导致该错误的原因有任何想法,请告诉我:)。 如果你需要的话,我可以添加一个github仓库的链接,但我不是要你读所有的代码,因为它没有很好的记录〜
提前致谢:)