Полиморфный массив - C (СИ)

Формулировка задачи:

Как задать динамический массив из float и того, что было определено в typedef-e? typedef обычная структурка
typedef struct ComplexObj ComplexObj;
 
    struct ComplexObj {
        float RealValue;
        float ImaginValue;
        };
Добавлено через 18 часов 21 минутуНикто не знает?

Код к задаче: «Полиморфный массив - C (СИ)»

textual
#include <stdio.h>
 
typedef struct ComplexObj ComplexObj;
 
struct ComplexObj {
    float RealValue;
    float ImaginValue;
};
 
struct Variant
{
    enum { Unknown, Double, ComplexObjStruct } type;
   
    union
    {
        double x;
        ComplexObj co;
    };
};
 
int main()
{
    struct Variant v;
    int t;
    scanf("%d", &t);
   
    if (t == 1) {
        v.type = Double;
        v.x = 3.14;
    }
    else if (t == 2) {
        v.type = ComplexObjStruct;
        v.co.RealValue = 1.2;
        v.co.ImaginValue = 3.4;
    } else {
        v.type = Unknown;
    }
   
    // ...
   
    switch (v.type)
    {
        case Double: printf("x = %g\n", v.x); break;
        case ComplexObjStruct: printf("%g + i*%g\n", v.co.RealValue, v.co.ImaginValue); break;
        default: printf("Error: unknown type.\n");
    }
}

11   голосов, оценка 3.909 из 5


СОХРАНИТЬ ССЫЛКУ