Как создать массив в 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;
}