gpt4 book ai didi

c++ - 分配包含另一个结构数组的结构数组时出错

转载 作者:行者123 更新时间:2023-11-28 05:40:33 24 4
gpt4 key购买 nike

这是我的代码:

struct first
{
char x;
int y;
};
first a[3]={{'a',1},{'c',2},{'b',3}};
struct second
{
first b[2];
int z;
};
second c={{a[0],a[1]},12};

基本上,当我分配second 结构时,第一个元素应该是first 结构类型的数组。所以我试图将两个元素 a[0]a[1] 放入其中。但它显示错误:

错误 CYAPA.CPP 12:无法将“first”转换为“char”

错误 CYAPA.CPP 12:无法将“first”转换为“int”

我做错了什么?我正在使用 Turbo c++,因为它是我们在印度的类(class)所允许的。

最佳答案

这种初始化在 C 中是不允许的,但在 C++98 中是允许的。

您的编译器比 1998 年早了好几年,因此它不允许某些已成为 C++ 标准一部分的内容也就不足为奇了。

您必须编写 {'a', 1} 而不是 a[0] 等,或者使用宏。宏解决方案可能如下所示:

#define A0 {'a', 1}
#define A1 {'c', 2}
#define A2 {'b', 3}

first a[3]={A0, A1, A2};
second c={{A0, A1}, 12 };

或者,您可以初始化a,然后在运行时设置c

关于c++ - 分配包含另一个结构数组的结构数组时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37208591/

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