Как создать массив в C, используя переменную?

Проблема заключается в том, что я использую VS 2012(по учебным причинам). Необходимо создать массив, используя данные пользователя. Я пробовал вводить переменную, создавать константу со значением переменной, но VS не позволяет. Также в параметрах функции значение является константой всегда:

void static_array_test(const size_t N)
{
    int A[N][WID]; //Ошибка - параметр N невозможно использовать, как константу
    int x = 1;
    for (int i = 0; i < N; ++i)
    {
        for (int j = 0; j < WID; ++j)
        {
            A[i][j] = x;
            x++;
        }
    }

Ответы (1 шт):

Автор решения: Sergey

В документе "ISO/IEC 9899:201x Programming languages — C" объявления массивов обсуждаются в разделе "6.7.6.2 Array declarators". В частности, в качестве примеров, там приводятся такие объявления динамических массивов:

extern int n;
extern int m;

void fcompat(void)
{
    int a[n][6][m];
    int (*p)[4][n+1];
    int c[n][n][6][m];
    int (*r)[n][n][n+1];
}

и ещё:

extern int n;
int B[100];

void fvla(int m, int C[m][m]);

void fvla(int m, int C[m][m])
{
    typedef int VLA[m][m];
    int D[m];
    int (*s)[m];
    static int (*q)[m] = &B;
}
→ Ссылка