В моих основных функциях у меня есть два игрока, которые представлены структурами с данными, включая имена.Когда в другом исходном файле я создаю указатель на эти структуры, я не могу получить доступ к именным строкам, тогда как с остальными данными все в порядке.
//In pokemonList.c
typedef struct{
char name[20];
int level;
int health;
int type;
int type2;
int fainted;
int moves[4];
//stats
int hp;
int attack;
int defense;
int spAttack;
int spDefense;
int speed;
int attackStage;
int defenseStage;
int spAttackStage;
int spDefenseStage;
int speedStage;
int spriteNo;
}Pokemon;
Pokemon summon(Pokemon pokemon, int level){
pokemon.level = level;
pokemon.health = (int)((((2.0 * (double)pokemon.hp) + 31.0) * (double)level)/100.0) + (double)level + 10.0;
pokemon.attack = levelUp(pokemon.attack, pokemon.level);
pokemon.defense = levelUp(pokemon.defense, pokemon.level);
return pokemon;
}
//In main.c
player1 = summon(venusaur, 50);
player2 = summon(blastoise, 100);
initialiseGUI(&player1, &player2);
//In video.c
void initialiseGUI(Pokemon *p1, Pokemon *p2){
strcpy(player1name, p1->name);
strcpy(player2name, p2->name);
printf("p1->name: %s\n", p1->name);
player1 = p1;
player2 = p2;
printf("p1->name: %s\nplayer1->name: %s\n", p1->name, player1->name);
}
Я ожидал, что результат этого будет:
p1->name: Venusaur
p1->name: Venusaur
player1->name: Venusaur
Фактический вывод:
p1->name: Venusaur
p1->name:
player1->name:
все остальные данные в структуре доступны из player1 -> ....