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

时间:2013-11-08 10:42:43

标签: c struct

假设我有这个结构

 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;

到目前为止一切顺利。但是如何在此之后使阵列停止无效 - 或者至少在其中放置一个字符“ - ”:

queue[0].last_name = "-";

我收到以下编译错误:

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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