C如何将struct分配给struct?

时间:2018-05-24 14:19:40

标签: c struct

以下代码为我提供了编译错误" incompatible types at assignment"

文件1:

struct x{ 
  int a; 
  int b; 
  int c;
};

文件2:

static struct x d;
void copyStructVal(){
  d-> a = 1;
  d-> b = 2;
  d-> c = 3;
}
x getStruct(){
 copyStructVal();
 return d;
}

文件3:

static struct x e;
void copy(){
 e = getStruct();
}

我已经搜索过这个并且无法找到答案。我可以使用指针吗? (我是C的业余爱好者)

1 个答案:

答案 0 :(得分:4)

在C中,您需要在结构名称后面写struct,除非您typedef。换句话说:

x getStruct(){

必须:

struct x getStruct(){

由于您在其余代码中编写了它,我想这是一个错字。

除此之外,您必须修复这3行,因为d不是指针:

  d-> a = 1;
  d-> b = 2;
  d-> c = 3;

他们应该是:

  d.a = 1;
  d.b = 2;
  d.c = 3;