簡體   English   中英

在 C 中,如何“直接”將結構復制到數組成員?

[英]In C, how do I "directly" copy a struct to an array member?

所以我想這樣做:

struct element{
  int t;
};

int main(int argc, char *argv[]) {
  struct element arr[10];
  arr[0]={3};
  return 0;
}

但這給了我以下錯誤:

test.c: In function ‘main’:
test.c:7:10: error: expected expression before ‘{’ token
    7 |   arr[0]={3};
      |          ^

為了解決這個問題,我將不得不求助於寫作:

int main(int argc, char *argv[]) {
  struct element arr[10];
  struct element tmp = {3};
  arr[0]= tmp;
  return 0;
}

但是我認為當我只想直接分配給element{3}時,寫一個 tmp 值是不雅的。 如何修復語法以便我不需要創建此tmp值?

你想要的是一個復合文字

arr[0]=(struct element){3};

暫無
暫無

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

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