Вот такой код в CodeBlock работает без ошибок
typedef struct exmpl{
int index;
char name[50];
int count;
} result;
int size;
scanf("%d", &size);
result data[size];
Но в Visual Studio выдает ошибки
error C2057: expected constant expression
error C2466: cannot allocate an array of constant size 0
error C2133: 'data' : unknown size
Как я понимаю проблема не в IDE а в стандартах С или компиляторах ?
Ответ
Где именно вы объявляете ваш массив?
Если ваш массив объявлен локально, то вы пытаетесь использовать Variable Length Arrays (VLA) - свойство языка С начиная с версии С99. Компилятор MSVC не поддерживает VLA, даже несмотря на то, что в современном MSVC поддержка С99 реализована [почти] полностью. Стандарт С11 сделал VLA опциональным свойством языка, так что возможно мы никогда и не увидим их поддержки в MSVC.
В нелокальных же областях VLA объявляться не может.
Комментариев нет:
Отправить комментарий