我们如何使用数组初始化结构(使用其变量)?
此版本效果很好:
MyStruct test = {"hello", 2009};
但是这个版本有问题:
char str[] = "hello";
MyStruct test = {str, 2009};
答案 0 :(得分:3)
你不能在C中分配数组,所以很遗憾没有办法直接这样做。但是,您可以使用strcpy复制数据。
typedef struct {
char name[20];
int year;
} MyStruct;
int main() {
MyStruct a = { "hello", 2009 }; // works
char s[] = "hello";
MyStruct b = { "", 2009 }; // use dummy value
strcpy(b.name, s);
return 0;
}
答案 1 :(得分:1)
MyStruct
的定义应包含char const *
类型的第一个成员。