Tablica o zmiennej długości w zakresie plików?

Mam na przykład ten kod.

#include <stdlib.h>
#include <stdio.h>
#define array_size 3

typedef struct {
    int array[array_size];
} TEST;

void printout(TEST *p, int element) {
    printf("element: %i\n", p->array[element]);
}

int main(void) {
    TEST *p;
    p = malloc(sizeof(TEST));
    p->array[0] = 5;
    printout(p, 0);

    return 0;
} 

Ale chciałbym przydzielić"array_size" na podstawie danych wprowadzonych przez użytkownika.

Jeśli spróbuję to zrobić, mówi kompilator"variably modified ‘array_size’ at file scope". Czy mam rację, że jedynym sposobem na zrobienie tego, co chcę, jest przeniesienie wszystkiego do main () ..?

Działa dobrze, ale zachowujestructs and functions declarations w zakresie plików wydaje się, wiesz, schludny.

questionAnswers(2)

yourAnswerToTheQuestion