Читать, стало быть, не умеем?
ISO C++ запрещает массив переменного размера
Вы компилируете не в соответствии со стандартом C++.
Да и вообще, gcc и g++ это всего лишь алиасы, вызывающие одно и то же приложение, оба могут компилировать и C, и C++. Добавь флаг --std=c++0x например и врядли оно скомпилируется.