分配给作为指针

时间:2018-05-11 16:30:49

标签: c pointers struct

我正在尝试从文本文件中取数字来放置struct的组件。

typedef struct{
 int x;
}A;

尝试1 :( fp是具有读取模式的文件指针)

void foo(A *a){
  fscanf(fp,"%d",&(*a).x);
 }

尝试2:

void foo(A *a){
  fscanf(fp,"%d",a->x);
 }

还有一些尝试类似于这些。它是分段错误或编译错误。似乎我在标记*&->方面遇到了一些问题。

1 个答案:

答案 0 :(得分:1)

以下是正确的。它应该工作。

void foo(A *a){
  fscanf(fp, "%d", &(*a).x);
}

以下内容不正确。

void foo(A *a){
  fscanf(fp, "%d", a->x);
}

a->xa->x的值,而不是a->x的地址,这是您需要的。

您可以将其更改为以下内容,它应该可以正常工作。

void foo(A *a){
  fscanf(fp, "%d", &(a->x));
}