Для определения типа объединения выполните
union element
{
int digit;
char letter;
float number;
};
Для динамически выделяемого массива с n
элементами типа union element
do:
union element * pu = malloc(n * sizeof (union element));
или даже лучше
union element * pu = malloc(n * sizeof *pu);
код, который вы показываете здесь
union element
{
int digit;
char letter;
float number;
} f;
делает две вещи:
- Определить тип
union element
- Определите переменную
f
типа union element
Примечание
Если это
element* arr = malloc(n * ...
компилируется, тогда вы используете не компилятор C, а компилятор C ++.
Требуется компилятор C
union element* arr = malloc(n * ...
Последний комментарий к вашей формулировке: " Initiallizing ... array ... ":
Код динамического создает n элементов объединения. Эти элементы не получают "инициализированный".
Инициализировать их при выделении calloc()
instrad malloc()
;
... = calloc(n, sizeof ...); /* Note the different number of parameters. */