C中结构的内存错误

Memory Error with structures in C

下面的代码删除了以后game.answer的内容,我也想不通为什么。

这是结构:

typedef struct
{
   int guesses, guessesAllowed;
   char* answer;
   char max;
} GameState;

这是我构建新结构的函数:

GameState makeGame(int guessesAllowed, int numOfPositions, char max,
   int seed)
{
   GameState game;
   char answer[9];

   answer[0] = '[=11=]';

   game.guesses = 0;
   game.guessesAllowed = guessesAllowed;
   game.answer = answer;
   game.max = max;

   getAnswer(answer, numOfPositions, max, seed);

   return game;
}

我认为它与不应该覆盖的内存有关?

你不能这样做:

game.answer = answer;

您在函数中将答案声明为数组。您不允许保留该地址并return它。

你的函数的内存和其中使用的变量,比如answer会立即被重用和覆盖。