簡體   English   中英

C如何將struct分配給struct?

[英]C how to allocate struct to 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語言中,除非typedef ,否則您需要在struct名稱后寫struct 換一種說法:

x getStruct(){

一定是:

struct x getStruct(){

由於您是在其余代碼中編寫的,因此我認為這是一個錯字。

最重要的是,由於d不是指針,因此必須修復這3行:

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

他們應該是:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM