У меня проблема с передачей структурного указателя на функцию с fscanf()
.
Вот моя структура:
typedef struct {
int health;
int y;
int z;
} save;
в main
У меня есть:
save save = { 0 }; //init with zeros
loadgame(&save);
health = save.health;
и моя функция loadgame()
выглядит так:
bool loadgame(save* save) {
FILE* fptr;
fptr = fopen("savegame.txt", "r");
if (fptr == NULL)
return 0;
fscanf(fptr, "health= %d", save->health);
return 1;
};
В моем savegame.txt
файле есть строка:
health= 5
, и моя функция не изменяется save->health
, после окончания sh этой функции мое здоровье равняется нулю.
Я пытался выполнить свою функцию таким же образом, и у нее также есть то же решение в функции loadgame()
Я изменил
fscanf(fptr, "health= %d", save-health);
до
fscanf(fptr, "health= %d", &(save-health));