Массив переменной длины в области видимости файла?

У меня есть этот код, например.

#include 
#include 
#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;
} 

Но я'хотел бы назначить"array_size" на основе пользовательского ввода.

Если я попытаюсь это сделать, компилятор скажет"variably modified ‘array_size’ at file scope", Итак, я прав, что единственный способ сделать то, что я хочу, это переместить все в main () ..?

Работает просто отлично, но держитstructs and functions declarations в объеме файла кажется, вы знаете, аккуратно.

Ответы на вопрос(2)

Ваш ответ на вопрос