我正在尝试从文本文件中获取数字来放置结构的组件。
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);
}
还有一些类似的尝试。要么是段错误,要么是编译错误。似乎我在使用符号 *
、&
、->
时遇到了一些问题。
最佳答案
下列说法正确的是。它应该可以工作。
void foo(A *a){
fscanf(fp, "%d", &(*a).x);
}
以下说法不正确。
void foo(A *a){
fscanf(fp, "%d", a->x);
}
a->x
是a->x
的值,而不是a->x
的地址,这是你的需要。
您可以将其更改为以下内容,它应该可以工作。
void foo(A *a){
fscanf(fp, "%d", &(a->x));
}
关于c - 分配给作为指针的结构体组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50296596/