私はこのコードを持っていて、動的に割り当てられた配列spielをGuess関数に渡そうとしていますが、g ++から次のエラーが発生します
error: invalid initialization of reference of type 'Player&' from expression of type
'Players*'
Guess(*spiel, spiel->player);
new
ポインターを返すので、配列を逆参照してはいけないと思いましたか?? 私のやり方の誤りを理解するのを手伝ってください。
struct Game;
struct Player;
void startGame(Game *game);
void Guess(Game &game, Player & player);
bool HasPlayers(Game &game);
void PlayerStats(Game &game);
void DestroyGame(Game *game);
struct Players{
string name;
int hits;
int misses;
int guesses;
char playing;
};
struct Game{
int running;
char level;
int numPlayers;
Players *player;
};
int main()
{
Game *spiel = new struct Game();
spiel->player = new Players[spiel->numPlayers];
cout << "\nWelcome to Spiel v0.4\n\n";
startGame(spiel);
Guess(*spiel, spiel->player); <===== this line produces the error
HasPlayers(*spiel);
PlayerStats(*spiel);
DestroyGame(spiel);