Массив размера, определенного непостоянной переменной

Вот такой код:

#include <iostream>

int main()
{
  int size;
  std::cin >> size;

  size = size + 1;
  int tab3[size];

  tab3[0] = 5;
  std::cout << tab3[0] << " " << sizeof(tab3) << std::endl;
  return 0;
}

Результат:

$ g++ prog.cpp -o prog -Wall -W 
$ ./prog
5
5 24

Почему этот код вообще компилируется? Разве длина массива не должна быть постоянной переменной?

Я использовал g ++ версии 4.4.5.

10
задан scdmb 14 November 2011 в 17:49
поделиться