Говорят, что у меня есть две различные структуры:массив над различными структурами
typedef struct {
int a;
int b;
int c;
int d;
} struct_1;
typedef struct {
int a;
int b;
int e;
int f;
int g;
int h;
} struct_2;
И что они используются аналогичным образом в двух разных алгоритма. То, что я попытаюсь сделать, - это заменить обе структуры, которые в основном разные, с динамическим массивом и использовать два перечисления для случаев, которые мне действительно нужны. Целью было бы сохранить разное имя полей структуры, а не использовать числа. Так что-то вроде:
typedef enum {
a,
b,
c,
d,
num1_fields
} struct_1_fields;
typedef enum {
a,
b,
e,
f,
g,
h
num1_fields
} struct_2_fields;
int *structure;
if(case_1) {
structure = malloc(4*sizeof(int));
} else if(case_2) {
structure = malloc(6*sizeof(int));
} else {
//something else
}
Однако, так как я бы повторно назначить тот же нумератор, компилятор не будет работать ... есть способ решить эту проблему?
Переключение на C++ вариант? –
Извините ... но нет XD. В противном случае я бы использовал его. – user8469759
Вы можете извлечь общие члены в третий тип структуры, а затем использовать их для определения своих других структур: 'typedef struct {struct_3 shared_fields; int c, d; } struct_1; ... «Трудно сказать, может ли это решить вашу проблему. Что именно вы пытаетесь достичь? – melpomene