可能重复:
C 中的 char s[] 和 char *s 有什么区别?
char *str = “…” 和 char str[N] = “…” 的区别?
我有一个结构定义为:
typedef struct
{
bool configured;
bool active;
uint32 lastComms;
uint32 rxChRvdTime;
char *name;
}vehicle;
我将其初始化如下:
static vehicle *myVehicle;
当我想初始化名称时,我使用:
myVehicle->name = "helloworld";
这很好用。但是当我不想将它设置为字符串文字以外的东西时,我似乎遇到了问题。
char *tmpName = "foobar";
strcpy(myVehicle->name, tmpName);
那么为什么 strcpy 不起作用呢?我是否需要事先在结构中预先分配字符串大小?我不应该在“名称”字段中使用指针吗,因为只能有一辆车?