0

假设我有这个结构

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

我用某个名称填充这个结构对象

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

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

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

到现在为止还挺好。但是在那之后我如何使arraypostion无效 - 或者至少在那里放一个字符“-”:

queue[0].last_name = "-";

我收到以下编译错误:

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

4

2 回答 2

2

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

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

于 2013-11-08T10:45:45.313 回答
1

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

于 2013-11-08T10:45:51.750 回答