Я пишу код при использовании структур.Я новичок в структурах, поэтому я тренируюсь, чтобы привыкнуть к нему.В любом случае, пытаясь использовать printf для переменной типа string, которая является переменной типа struct, printf печатает только '@' вместо всей строки.
...
void signPlayers(struct player players[9], int playersC) // players is an array declared on main and playersC is the size of it.
{
for (int i = 0; i < playersC; i++)
{
char tname[22];
printf("Please enter the name of the player #%d: \n",i+1);
int res = scanf(" %s",&tname);
while(res != 1)
{
printf("Please enter a valid name for player #%d: \n",i+1);
res = scanf(" %s",&tname);
}
players[i].name = tname;
printf("Player #%d signed as %s!\n\n",players[i].id,players[i].name); // this printf actually works fine
}
}
int checkForWinner(struct player players[], int playersC)
{
for (int i = 0; i < playersC; i++)
{
if (players[i].pos == 10)
return 0;
printf("%s\n",players[i].name); // prints "@" instead of the name
}
return 1;
}
...
, поэтому, если я ввел имя Joey,Сначала printf фактически печатает «Joey», затем, когда я вызываю функцию checkForWinner (она вызывается после функции signPlayers), printf теперь печатает только «@» вместо полного имени снова.Что может быть не так?