Форум программистов, компьютерный форум CyberForum.ru

Почему происходит ошибка при описании массива? - C++

Восстановить пароль Регистрация
 
goradon
 Аватар для goradon
0 / 0 / 0
Регистрация: 30.12.2013
Сообщений: 71
28.01.2014, 20:50     Почему происходит ошибка при описании массива? #1
C++
1
2
3
4
5
int setSize;
    cout << "How many elements would you have? ";
    cin >> setSize;
    const int getSize = setSize;
    int a[getSize];
ошыбка тут
C++
1
int a[getSize]
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2014, 20:50     Почему происходит ошибка при описании массива?
Посмотрите здесь:

Почему не происходит ошибка при обращении к недопустимому индексу C++
Как сделать так чтобы переменная в описании одной функции была доступна в описании другой? C++
Почему при чтении бинарного файла происходит экстренное завершение программы? C++
C++ Подскажите почему происходит ошибка в вычислении
При инициализации указателя на функцию происходит ошибка сборки программы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
28.01.2014, 20:57     Почему происходит ошибка при описании массива? #2
Цитата Сообщение от goradon Посмотреть сообщение
const int getSize = setSize;
getSize - не константа и компилятор не может определить какой размер стека нужен

Добавлено через 3 минуты
а вообще, насколько я понял фишка компилятора, на некоторых пройти может
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
28.01.2014, 20:58     Почему происходит ошибка при описании массива? #3
если компилятор не поддерживает VLA, то подобные вещи на нем не запустишь. В нынешние стандарты С++ (в С++14 обещают ввести) они не входят, есть лишь в С99.
Однако g++ данный код считает вполне валидным и умеет обрабатывать.
goradon
 Аватар для goradon
0 / 0 / 0
Регистрация: 30.12.2013
Сообщений: 71
28.01.2014, 21:06  [ТС]     Почему происходит ошибка при описании массива? #4
MrGluck, у меня visual studio 2013 можно что та скачать чтобы оно ето видело ?
или подскажи как водить константу с клавы ?
vovacreme
-16 / 61 / 13
Регистрация: 14.01.2014
Сообщений: 145
28.01.2014, 21:08     Почему происходит ошибка при описании массива? #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от goradon Посмотреть сообщение
C++
1
2
3
4
5
int setSize;
    cout << "How many elements would you have? ";
    cin >> setSize;
    const int getSize = setSize;
    int a[getSize];
ошыбка тут
C++
1
int a[getSize]
потому что значение переменной getSize должно быть известно на момент компиляции, а не во время компиляции. В твоем случае нужно использовать динамическое распределение памяти:

C++
1
2
3
4
5
6
int setSize;
cout << "How many elements would you have? ";
cin >> setSize;
int * a = new int[setSize];
// действия над массивом
delete[] a;
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
28.01.2014, 21:10     Почему происходит ошибка при описании массива? #6
Цитата Сообщение от goradon Посмотреть сообщение
у меня visual studio 2013 можно что та скачать чтобы оно ето видело ?
Конечно. Качаете другой компилятор (Mingw) и работаете в нем.
Но в вашем случае надо работать с динамической памятью, а не искать компилятор, где код, несоответствующий стандарту С++, вдруг заработает.

Добавлено через 19 секунд
Цитата Сообщение от vovacreme Посмотреть сообщение
а не во время компиляции
а не во время выполнения
/fixed
vovacreme
-16 / 61 / 13
Регистрация: 14.01.2014
Сообщений: 145
28.01.2014, 21:17     Почему происходит ошибка при описании массива? #7
Цитата Сообщение от MrGluck Посмотреть сообщение

Добавлено через 19 секунд

а не во время выполнения
/fixed
Пардон, ошибся
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2014, 21:33     Почему происходит ошибка при описании массива?
Еще ссылки по теме:

C++ почему при вводе в массив числа отличного от 1 и 2 все равно происходит начисление К +1
Ошибка деструктора - В конструкторе происходит выход за границу массива C++
При удалении элемента из списка происходит непонятная ошибка C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
goradon
 Аватар для goradon
0 / 0 / 0
Регистрация: 30.12.2013
Сообщений: 71
28.01.2014, 21:33  [ТС]     Почему происходит ошибка при описании массива? #8
vovacreme,
C++
1
int * a = new int[setSize];
спасибо помогло ! ))
Yandex
Объявления
28.01.2014, 21:33     Почему происходит ошибка при описании массива?
Ответ Создать тему
Опции темы

Текущее время: 03:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru