使用另一个char数组从struct设置char数组

时间:2013-05-25 21:41:45

标签: c methods struct char arrays

我有结构:

struct person {
    char firstname[];
};

方法:

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

gcc抛出这个:

  

char*' to char [0u]'

的分配中不兼容的类型

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

1 个答案:

答案 0 :(得分:2)

您无法分配数组。你想要一个指针,或者将一个内容复制到另一个。

struct person {
    char* firstname;
};

void abcde (person* a, char firstchar[]) { 
    a->firstname = firstchar;
}
函数参数中的

firstchar指针,而不是数组! []仅仅是一种语法上的便利。对于char firstname[];,这不是一个数组。