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

标签 c++ arrays structure

这是我的代码:

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/

相关文章:

jQuery 使用对象文字对相似项目进行分组

c++ - C++中的删除结构

c++ - 单击 View 中的项目时从另一个小部件访问自定义模型数据

c++ - 奇怪的 OpenGL 纹理显示

c++ - Netbeans:如何包含其他 C++ 静态库项目?

c - 如何从 10 个字符串的数组中打印 5 个唯一的字符串

c++ - 在 unique_ptr vector 中转移所有权

c - 要求用户为数组的每个元素输入一个整数值

javascript - 如何将文本从 html 输入推送到 AngularJS 数组?

c++ - 从指针指向内存的二进制文件中读取结构