Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
Вернуться
Тема: В С++ когда объявляю массив с размеров в виде какой-то переменной, например: long a[n]; компилятор пишет следующие ошибки:
error C2057: expected constant expression
error C2466: cannot allocate an array of constant size 0
error C2133: 'a' : unknown size
Как сделать так, чтобы компилятор не выдавал эти ошибки?

1
  1  Фёдоров Александр Игоревич, 20 февраля 2014 г. 14:35:08
      А как объявить двумерный массив?
  2  Фёдоров Александр Игоревич, 20 февраля 2014 г. 14:24:19
      Спасибо
  3  Лукьянов Иван, 20 февраля 2014 г. 13:21:33
      MSVC++ 2003 не поддерживает создание динамических массивов в таком виде. Можно пользоваться такой формой:
int *a = new int[n];
  4  Беляев Сергей Николаевич, 20 февраля 2014 г. 5:19:44
      Полагаю, что проще использовать STL. В частности библиотеку vector, и vector вместо массива:
#include <vector>
...
vector<int> a;
...
a.resize(n);

Далее можете с a работать как с обычным массивом.
  5  Григорьев михаил Павлович, 19 февраля 2014 г. 20:37:40
      Если n изначально не инициализовано ,а инициализуется в ходе программы, то создай динамический массив;
new * a= new int n;
1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru