I have been teaching myself programming for couple of years, and I was sure that if you need array declaration of a variable number you need to use malloc
or new
.
Today I found that this compiles under g++ version 4.4.4, without warnings or errors:
#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;
}
Also it compiles completely fine if you are using gcc (after changing cout
and cin
with printf
and scanf
)
Under Visual Studio this code fails to compile since size_array
is not constant.
When this was changed? This is a safe method?
See Question&Answers more detail:os