我有一个结构,需要用于两个不同的变量(firstVar和secondVar)。
我不想使用vectors,而只使用2个简单结构。
由于我不想复制需要用户输入的代码,因此我想创建一个我同时调用的操作(firstVar和secondVar)
我希望能够通过引用将结构传递给操作。
这是我的代码,我仍然不知道自己在做什么错。
#include <stdio.h>
typedef struct {
int id;
float length;
} tMystruct;
tMystruct firstVar;
tMystruct secondVar;
void readStructs(tMystruct *theVar)
{
scanf("%d",theVar.id);
scanf("%f",theVar.length);
}
int main(void)
{
readStructs(&firstVar);
readStructs(&secondVar);
return 0;
}
最佳答案
这是问题所在
void readStructs(tMystruct *theVar)
{
scanf("%d",theVar.id); //<------problem
scanf("%f",theVar.length); //<------problem
}
您应该使用
->
运算符访问Structure指针成员,并且还缺少&
,这最终会导致分段错误。这是修改后的代码,
void readStructs(tMystruct *theVar)
{
scanf("%d",&theVar->id);
scanf("%f",&theVar->length);
}
关于c - 如何在C中通过引用传递结构?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53097276/