在 C 中,如何“直接”将结构复制到数组成员?

Poe*_*phe 2 c arrays struct

所以我想这样做:

struct element{
  int t;
};

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

但这给了我以下错误:

test.c: In function ‘main’:
test.c:7:10: error: expected expression before ‘{’ token
    7 |   arr[0]={3};
      |          ^
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我将不得不求助于写作:

test.c: In function ‘main’:
test.c:7:10: error: expected expression before ‘{’ token
    7 |   arr[0]={3};
      |          ^
Run Code Online (Sandbox Code Playgroud)

但是我认为当我只想直接分配给element{3}. 如何修复语法以便我不需要创建此tmp值?

dbu*_*ush 5

你想要的是一个复合文字

arr[0]=(struct element){3};
Run Code Online (Sandbox Code Playgroud)