如果我声明一个如下所示的简单结构:
typedef struct {
char name[50];
int age;
} Person;
struct Person people[7];
然后在下面引用它来插入数据:
static void insert(Person people[HOW_MANY], char *name, int age)
{
static int nextfreeplace = 0;
people[nextfreeplace].name = &name;
people[nextfreeplace].age = age;
nextfreeplace += 1;
}
我得到了一个不兼容的类型错误:
error: incompatible types when assigning to type 'char[50]' from type 'char **' people[nextfreeplace].name = &name;
我是否声明了我的结构错误?或者我搞砸了我的指针?
答案 0 :(得分:1)
只需使用
snprintf(people[nextfreeplace].name, 50, "%s", name);
复制字符串。在这种情况下,它还会检查缓冲区大小。