我的程序在两行(理论上)连续的代码之间出现错误,并且不知道是什么原因造成的。
我的整个代码很大,所以这里是基础;
int playRoom(std::string currentRoom = "Storage_room", std::string entryDoor = "NULL"){
log("Starting playRoom()");
// code to play the level
// includes setting up box2d world
// and playing the level
if(playerWantsRestart){
log("Restart level");
return playRoom(savedData.roomName, savedData.entryDoor);
}
log("Leaving playRoom()");
return 0;
}
int main( int argc, char* args[] ){
// Set up SDL etc..
playRoom();
log("Back in main()");
// Close SDL
return 0;
}
如果我从不使用重启选项,一切都很好。如果我确实使用它,程序将以状态 3 退出,并且日志文件显示:
Starting playRoom()
Restart level
Starting playRoom()
Leaving playRoom()
所以错误似乎在“return 0;”中??我不认为状态 3 是溢出,而且它只会递归(?)一次,所以......我使用的是 Codeblocks 12.11,用 GNU GCC 编译。任何帮助或想法都会很棒!