从类型int分配类型char 时不兼容的类型

假设我有这个结构

struct person { char last_name [10]; }; typedef struct person Person; 

我用这个名字填充这个struct-object

 Person p; Person *ptrPerson = &p; strcpy(ptrPerson->last_name, "Johnson"); 

然后我把这个名字放在Person类型的数组中……放在第一个位置

 Person queue[10]; queue[0] = *ptrPerson; 

到现在为止还挺好。 但是如何在此之后使arrays停止无效 – 或者至少在其中放置一个字符“ – ”:

 queue[0].last_name = "-"; 

我收到以下编译错误:

错误:从类型’int’分配类型’char [10]’时出现不兼容的类型

queue[0].last_name = "-"; 正在尝试分配"-"返回的地址。

使用strcpy (queue[0].last_name ,"-");

跟踪使用哪些条目以及哪些条目是“免费”。 或者,如果要清除整个结构,可以使用例如memset 。 或者复制一个你已经在一个地方使用strcpy的字符串,为什么不在另一个地方使用它呢?