我无法弄清楚如何快速初始化一堆结构。我不知道需要为它们分配一个字符数组。代码如下:
typedef struct {
char name[5];
} s;
s * buildS() {
char names[2][5] = { "name", "foo"};
s stru[2];
for (int i = 0; i < 2; i++) {
s tmp;
tmp.name = names + i;
stru[i] = tmp;
}
return stru;
}
s.name = names + 1;
行是出现错误的地方:
error: incompatible types when assigning to type 'char[5]' from type 'char (*)[5]'
我在这里缺少什么?我可以将一个内部数组分配给结构的数组字段吗?
编辑:修复了代码中糟糕的语法,我的错误
答案 0 :(得分:1)
我猜你试图将包含名称的数组拆分为两个结构。
根据你所做的事情做到这一点:
加入<string.h>
然后改变:
for (int i = 0; i < 2; i++) {
s tmp;
s.name = names + i;
}
致:
for (int i = 0; i < 2; i++) {
strcpy(stru[i].name, names[i]);
}