我被告知编写一个程序,创建一个 union 和结构,然后创建 union 和结构的二元素数组并填充它们的字段。我创建了一个 union 和一个结构,但是如何将它们的字段填充到数组中?
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
union complex;
union complex{
int i1;
long double ld1;
} u;
struct Person {
char* name;
int age;
bool sex;
void show(){
printf("name %s, age %2.0d, sex %1d\n",
name , age, sex);
};
} person;
int main(void)
{
Person *o = new Person[2];
complex *un = new complex[2];
un[0]->i1=i;
system("pause");
return 0;
}
我尝试过 un[0]->i1=i;但这不是执行此操作的正确方法。
最佳答案
un
是一个complex
数组,而不是一个指向complex
的指针数组。因此,un[0]
是一个复数
,而不是指向复数
的指针。
因此,您需要:
un[0].i1 = i;
名为 u
的 complex
类型的全局实例看起来有点毫无意义,可能应该被删除。
关于C++ union 表和结构表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2764555/