【发布时间】:2018-04-10 16:46:06
【问题描述】:
我不知道如何快速初始化一堆结构。我一直坚持需要为他们分配一个字符数组。代码如下:
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]'
我在这里缺少什么?我可以将内部数组分配给结构的数组字段吗?
编辑:修复了代码中糟糕的语法,我的错
【问题讨论】:
-
strncpy(s.name, &names[i], strlen(names[i]));? -
s 是类型........
-
对不起,代码中有一些错误,我只是想把我想要做的事情的大致想法写下来。这不是我粘贴的字面意思
-
数组已分配内存。您不能将其指向其他位置。