从类型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
的字符串,为什么不在另一个地方使用它呢?