Выражение должно иметь константное значение(в вижуалке)
Язык СИ. Вылезает ошибка в Вижуалке(в онлайн компиляторе все нормально) Выражение должно иметь константное значение в 16 строке.
Сам код:
#include <stdio.h>
#include <locale.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
int onoff = 0;
setlocale(LC_ALL, "Russian");
typedef struct {
int num;
char mess[60];
} cinfo;
unsigned num = 0;
printf("Введите число cообщений: "); scanf("%u", &num);
cinfo numbs[num];
printf("0 - сортировка от макс. к мин., 1 - сортировка от макс. к мин., 2 - в порядке ввода: "); scanf("%u", &onoff);
for (unsigned i = 0; i < num; i++) {
printf("Введите информацию о сообщений: \n");
printf("Номер девайса: "); scanf("%u", &numbs[i].num);
printf("Текст(до 60 символов): "); scanf("%s", &numbs[i].mess);
}
if (onoff == 1) {
for (unsigned i = 0; i < num-1; i++) {
if (numbs[i+1].num > numbs[i].num) {
int tmp = numbs[i].num;
numbs[i].num = numbs[i+1].num;
numbs[i+1].num = tmp;
// char * p = numbs[i-1].mess;
// * numbs[i - 1].mess = * numbs[i].mess;
// * numbs[i].mess = * p;
}
}
for (unsigned j = 0; j < num; j++) {
printf("Rez: Device: %u ; Text: %s\n", numbs[j].num, numbs[j].mess);
}
}
if (onoff == 2) {
for (unsigned i = 0; i < num; i++) {
printf("Rez: Device: %u ; Text: %s\n", numbs[i].num, numbs[i].mess);
puts("---------------------------------------------");
}
}
return 0;
}