Я сам учился программированию пару лет и был уверен, что если вам нужно объявление массива номера переменной, вам нужно использовать malloc
или new
.
Сегодня я обнаружил, что это компилируется под g ++ версии 4.4.4 без предупреждений и ошибок:
#include <iostream>
using namespace std;
int main()
{
int size_array;
cin >> size_array;
int iTable[size_array];
for(int i=0;i < size_array;i++)
iTable[i]=i*i;
for(int i=0;i < size_array;i++)
cout << iTable[i] << endl;
return 0;
}
Также он отлично компилируется, если вы используете gcc (после изменения cout
и cin
на printf
и scanf
)
В Visual Studio этот код не компилируется, поскольку size_array
не является постоянным.
Когда это было изменено? Это безопасный метод?