C如何将struct分配给struct?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C如何将struct分配给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的业余爱好者)

答案

在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;

以上是关于C如何将struct分配给struct?的主要内容,如果未能解决你的问题,请参考以下文章

c#node struct自定义LinkedListNode结构中的循环依赖

将struct *从c#传递给c ++ dll

如何在模板类函数中分配struct值?

使用Struct将String数组和索引传递给C中的线程

c语言如何给结构体指针赋值?

C++ Struct 动态内存分配