Существует два способа выделения памяти массиву, размер которого неизвестен в начале. Самый распространенный способ - использовать malloc
как этот
int * array;
... // when we know the size
array = malloc(size*sizeof(int));
Но он также действует в C99 для определения массива после того, как мы знаем размер.
... // when we know the size
int array[size];
Являются ли они абсолютно тем же?