C 使用另一个字符数组设置结构中的字符数组

C 使用另一个字符数组设置结构中的字符数组,c,methods,struct,char,arrays,C,Methods,Struct,Char,Arrays,我有一个结构: struct person { char firstname[]; }; 方法是: void abcde (person* a, char firstchar[]) { a->firstname = firstchar; } gcc提出了以下观点: 将char*”赋值给char[0u]时的类型不兼容 如何解决这个问题? 谢谢你的帮助 不能分配给数组。您需要一个指针,或者将一个指针的内容复制到另一个指针中 struct person { char*

我有一个结构:

struct person {
    char firstname[];
};
方法是:

void abcde (person* a, char firstchar[]) {
    a->firstname = firstchar;
}
gcc提出了以下观点:

char*”赋值给
char[0u]时的类型不兼容

如何解决这个问题?
谢谢你的帮助

不能分配给数组。您需要一个指针,或者将一个指针的内容复制到另一个指针中

struct person {
    char* firstname;
};

void abcde (person* a, char firstchar[]) { 
    a->firstname = firstchar;
}

函数参数中的
firstchar
是指针,而不是数组!
[]
只是一种语法上的方便。
charfirstname[]的情况并非如此
,它是一个数组。

是否应该将
struct person*a
作为形式参数?你缺少了结构> /COM>。