首页 > 解决方案 > 将指向结构的指针传递给函数的C问题

问题描述

我在将结构指针传递给带有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,完成此功能后我的健康为零。

我试着像那样做我的功能,它在loadgame()我改变的功能中也有相同的解决方案

fscanf(fptr, "health= %d", save-health);

fscanf(fptr, "health= %d", &(save-health));

标签: cpointersscanfstructure

解决方案


fscanf(fptr, "health= %d", save->health);->fscanf(fptr, "health= %d", &save->health);

在这里你可以使用https://godbolt.org/z/5CuZwR

在我的示例中,始终检查结果scanf


推荐阅读