假设我有这个结构
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]”时出现不兼容的类型
答案 0 :(得分:2)
queue[0].last_name = "-";
正在尝试分配"-"
返回的地址。
使用strcpy (queue[0].last_name ,"-");
答案 1 :(得分:1)
跟踪使用哪些条目以及哪些条目是“免费”。或者,如果您想清除整个结构,可以使用例如memset
。或者要复制您在一个地方使用strcpy
的字符串,为什么不在另一个地方使用它呢?