这是我的代码:
typedef struct{
char name[64];
} Cat;
Cat createCat(char name[64]) {
Cat newCat;
newCat.name = name;
return newCat;
}
它编译时出现以下错误信息:
incompatible types when assigning to type 'char[64]' from type 'char *'
我在这里做错了什么?
最佳答案
数组在传递给函数时衰减为指针。所以:
Cat createCat(char name[64]) {
等同于:
Cat createCat(char* name) {
和行:
newCat.name = name;
正在尝试将 char*
分配给 char[]
,如错误所述。作为Mystical已经评论过了,需要用memcpy()
或 strcpy()
(或 strncpy()
)将 name
复制到 newCat.name
。如果您使用 memcpy()
,您必须记住以 null 终止 newCat.name
。
关于c - 结构和字符串问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11831122/