У меня есть следующий код:
...
int n;
cin >> n;
int numbers[n];
...
Он скомпилирован с NetBeans на Mac с использованием g ++ (я думаю) и не скомпилирован с использованием VS2008 на Windows.Почему так сложно заставить его работать с каждым компилятором?Размер массива известен до его выделения.
РЕДАКТИРОВАТЬ: Я знаю о std::vector
.На самом деле это было частью домашнего задания, и я начал его на работе на Mac, затем вернулся домой и был удивлен, что он не работает на VS2008.Спасибо за ответы на все вопросы.Но я по-прежнему считаю логичным, что если компилятор может сгенерировать некоторый код, такой как alloc(123)
, где значение 123 жестко закодировано, то почему он не может сгенерировать что-то вроде alloc(n)
, где вы получаете n
из адреса памяти, который содержит int n
или что-то в этом роде.Просто кажется более логичным разрешить что-то подобное по умолчанию.