c ++ таблицы союзов и структур - PullRequest
1 голос
/ 04 мая 2010

Мне сказали написать программу, которая создает объединение и структуру, затем создает двухэлементные массивы объединений и структур и заполняет их поля. Я создал объединение и структуру, но как заполнить их поля в массивах?

#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; но это не правильный способ сделать это.

1 Ответ

4 голосов
/ 04 мая 2010

un - это массив complex, а не массив указателей на complex. Следовательно, un[0] является complex, а не указателем на complex.

Таким образом, вам нужно:

un[0].i1 = i;

Глобальный экземпляр типа complex с именем u выглядит немного бессмысленно и, вероятно, его следует удалить.

...