D
DiRob
Стандартом С99 предусмотрены локальные массивы переменной длины.
void func(const int a)
{
double Arr[a];
...
}
Чем я активно пользовался.
Но тут мне потребовалось написать кое какую ерунду под винды.
Я использовал Microsoft Visual Studio .NET 2003 и понял, что ничего не понял.
Конструкция описанная выше забраковывалась со следующим основанием:
..\VarArr.cpp(18): error C2057: expected constant expression
..\VarArr.cpp(18): error C2466: cannot allocate an array of constant size 0
..\VarArr.cpp(18): error C2133: 'Arr' : unknown size
MSDN по этому поводу логичен и лаконичен, из чего я могу предположить, что такое не прокатит. Сама проблемма решается простым использованием динамического выделения, дело не в этом. Просто как то странно это...
Вопрос:
1. Почему???
2. Какому стандарту принадлежит данный компилятор???
P.S. Пробовал Visual Studio 2005, результат тот же... Может там чего настроить надо?
void func(const int a)
{
double Arr[a];
...
}
Чем я активно пользовался.
Но тут мне потребовалось написать кое какую ерунду под винды.
Я использовал Microsoft Visual Studio .NET 2003 и понял, что ничего не понял.
Конструкция описанная выше забраковывалась со следующим основанием:
..\VarArr.cpp(18): error C2057: expected constant expression
..\VarArr.cpp(18): error C2466: cannot allocate an array of constant size 0
..\VarArr.cpp(18): error C2133: 'Arr' : unknown size
MSDN по этому поводу логичен и лаконичен, из чего я могу предположить, что такое не прокатит. Сама проблемма решается простым использованием динамического выделения, дело не в этом. Просто как то странно это...
Вопрос:
1. Почему???
2. Какому стандарту принадлежит данный компилятор???
P.S. Пробовал Visual Studio 2005, результат тот же... Может там чего настроить надо?