我正在使用SDL在C ++中制作游戏。我有主要功能,女巫只是要求运行游戏功能。运行游戏功能运行游戏,退出时应返回0。我尝试在每次调用之前和之后打印内容,并且段错误应该在返回0处发生;

functioncall()
{

   Loads of SDL and other stuff

   SDL_Quit();
   gamestatemanager.~Gamestatemanager();
   return 0; // This is probably where i get the seg fault
}

最佳答案

如果那是gamestatemanager的析构函数,则不应显式调用它。

当对象系统清理您的对象时,它将被调用。

如果将其创建为具有以下内容的局部变量:

Gamestatemanager gamestatemanager;


那么当它超出范围时将被清理。如果它是用new分配的,则应delete对其进行清理,这时它将被清理。

您可能在这里发现的是,您自己在调用析构函数,然后在对象超出范围时再次被调用。这不太可能结局好:-)

09-06 21:27