gpt4 book ai didi

c - 是否可以从二维数组中为结构分配数组

转载 作者:行者123 更新时间:2023-11-30 19:05:29 25 4
gpt4 key购买 nike

我不知道如何快速初始化一堆结构。我陷入了需要为它们分配一个字符数组的困境。代码如下:

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; 行是错误出现的位置:

错误:从类型“char (*)[5]”分配给类型“char[5]”时出现不兼容的类型

我在这里缺少什么?我可以将内部数组分配给结构体的数组字段吗?

编辑:修复了代码中蹩脚的语法,我的错

最佳答案

我猜您正在尝试将包含名称的数组拆分为两个结构。

根据您所做的事情来做到这一点:

包括<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]);
}

关于c - 是否可以从二维数组中为结构分配数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49758965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com