我有一个Game类和一个struct NamedGame类。 NamedGame具有两个成员变量,如下所示:

  struct NamedGame {
    Game game;
    std::string name;
  };

然后我有一个vectorNamedGames:
std::vector<NamedGame> games;

指针应指向当前 Activity 的游戏:
  Game *currentGame;

现在,当我尝试指向 vector NamedGame中的最后一个games时,如下所示:
  *currentGame = games.back().game;

这会导致分段错误。我在做什么错,为什么错了?我真的很感谢所有帮助!
#include <vector>
#include <string>

struct Game {};
struct NamedGame {
  Game game;
  std::string name;
};

int main() {
  std::vector<NamedGame> games;
  Game *currentGame;
  *currentGame = games.back().game;
}

最佳答案

在这里,您尝试引用未初始化的指针currentGame:

*currentGame = games.back().game;

您必须将此行更改为:
currentGame = &(games.back().game);

10-06 14:26