结构和字符串问题

Ran*_*lue 0 c

这是我的代码:

typedef struct{
  char name[64];
} Cat;

Cat createCat(char name[64]) {
  Cat newCat;

  newCat.name = name;

  return newCat;
}
Run Code Online (Sandbox Code Playgroud)

它编译时出现以下错误消息:

从类型'char*'分配类型'char [64]'时不兼容的类型

我在这做错了什么?

hmj*_*mjd 7

传递给函数时,数组衰减为指针.所以:

Cat createCat(char name[64]) {
Run Code Online (Sandbox Code Playgroud)

是相同的:

Cat createCat(char* name) {
Run Code Online (Sandbox Code Playgroud)

和行:

newCat.name = name;
Run Code Online (Sandbox Code Playgroud)

正在尝试将a分配char*给a char[],因为错误状态.正如Mystical已经评论过,你需要使用memcpy()strcpy()(或strncpy())复制namenewCat.name.如果你使用memcpy()必须记住null终止newCat.name.