c zdefiniuj tablice w strukturze o różnych rozmiarach

Muszę zdefiniować strukturę dla dwóch typów obiektów. Obie mają dokładnie taką samą strukturę danych i wykonują te same zadania (metody członkowskie).

Jedyną różnicą jest to, że rozmiary tablic różnią się w obu typach, jeden przy użyciu SIZE_A, drugi SIZE_B.

Powielanie definicji struktury i funkcji nie jest pożądane.

Jak mogę użyć jednego typu 'struct' i zainicjalizować jego tablice o różnych rozmiarach?

#define SIZE_A 100
#define SIZE_B 200

typedef struct{
  int matr[SIZE_A][SIZE_A];  // for another type matr[SIZE_B]
  int arr[SIZE_A];           // for another type arr[SIZE_B]
  int size;                  // will be initialized to SIZE_A or SIZE_B
  int var1, var2;
}s;

void task1(s* si){
  ...
}

void task2(s* si){
  ...

questionAnswers(3)

yourAnswerToTheQuestion