VS2013 не поддерживает объявление переменной длины.
Вы не можете ввести непостоянное значение в скобках, когда вы объявить массив:
char a[b];
Поскольку вы получаете размер от пользователя, компилятор не может сказать заранее хау много памяти, необходимой для char array a
. Проще всего сделать это (особенно для упражнения) - просто выбрать относительно большую ценность и сделать так, чтобы постоянное распределение, например:
char a [1024];
А затем, если вы хотите быть осторожным (и вы должны), вы можете проверить (b> 1024) и напечатать сообщение об ошибке, если пользователь хочет b
, который находится за пределами выделенных границ.
Если вы хотите получить фантазии, вы можете определить char a[]
без каких-либо заранее заданного размера, как char *a;
а затем передать его позже с таНос:
a = (char *)malloc(sizeof(char) * b);
вы также должны бесплатно char a[]
позже, когда вы «Сделано с ним:
free(a);
Надеюсь, это поможет!
'malloc' обычно используется для динамического измерения массива. – squiguy
Visual Studio славится тем, что не поддерживает C должным образом. – Leushenko
VS2013 не является компилятором C. –