如何使用指向另一个字段的字段初始化结构?

时间:2017-07-24 09:18:02

标签: c struct initialization

鉴于此结构:

typedef struct test {
  char field1[20];
  char *field2;
} test_s

如何使用指定的初始化程序初始化这种结构,知道我希望field2指向field1?

test_s test = {.field1[0] = '\0', .field2 = .field1};

不起作用。

1 个答案:

答案 0 :(得分:5)

如果是单项声明,您可以使用声明的变量的名称,因为编译器可以在初始化期间随时获取地址:

test_s test = {.field1[0] = '\0', .field2 = test.field1};

Demo.