The code below should generate an error, since there is no way that the compiler can know the array size during compilation.
int f;
std::cin >> f;
int c[f];
c[100] = 5;
I am compiling with gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2 and it doesn't just compile, but it runs somehow.
How does it happen?