gpt4 book ai didi

c - 如何初始化作为结构成员的字符串数组?

转载 作者:行者123 更新时间:2023-12-02 22:01:54 24 4
gpt4 key购买 nike

如何将字符串数组“发送”到结构?我的问题更多,我如何在代码中“拼写”。我收到错误,缺少大括号。

我声明了一个包含字符串数组 (tstrs) 的结构。

typedef struct
{
bool dummy;
char *tdata1;
char *tdata2;
char tstrs[30][50];
} SampleSettings;

当我从 main.c 向这个结构传递数据时,它在我使用这段代码时起作用

static char strs[30][50];

SampleSettings sample_settings = {
false,"nothing","empty",{"foo","morefoo"}
};

但是,如果我使用例如这段代码

static char strs[30][50];

SampleSettings sample_settings = {
false,"nothing","empty",strs
};

编译器以

停止

error: missing braces around initializer [-Werror=missing-braces]

我知道这可能是一个菜鸟问题。对此感到抱歉。

最佳答案

选项 1

typedef struct
{
bool dummy;
char *tdata1;
char *tdata2;
char tstrs[30][50];
} SampleSettings;

int main()
{
SampleSettings sample_settings = {
false,"nothing","empty",{"foo","morefoo"}
};

return 0;
}

选项 2

检查我是否更改了结构

typedef struct
{
bool dummy;
char *tdata1;
char *tdata2;
char **tstrs;
} SampleSettings;

int main()
{
char strs[30][50] = {{0}};
SampleSettings sample_settings = {
false,"nothing","empty",(char **)strs
};
return 0;
}

关于c - 如何初始化作为结构成员的字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16812927/

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