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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
goradon
0 / 0 / 0
Регистрация: 30.12.2013
Сообщений: 71
#1

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

28.01.2014, 20:50. Просмотров 229. Ответов 7
Метки нет (Все метки)

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

Добавлено через 3 минуты
а вообще, насколько я понял фишка компилятора, на некоторых пройти может
MrGluck
Ворчун
Эксперт CЭксперт С++
6647 / 3838 / 505
Регистрация: 29.11.2010
Сообщений: 10,154
28.01.2014, 20:58     Почему происходит ошибка при описании массива? #3
если компилятор не поддерживает VLA, то подобные вещи на нем не запустишь. В нынешние стандарты С++ (в С++14 обещают ввести) они не входят, есть лишь в С99.
Однако g++ данный код считает вполне валидным и умеет обрабатывать.
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
Ворчун
Эксперт CЭксперт С++
6647 / 3838 / 505
Регистрация: 29.11.2010
Сообщений: 10,154
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++
Ошибка в описании коструктора C++
C++ Почему происходит ошибка времени выполнения в решении задачи "Ход конем"?
C++ Почему происходит ошибка времени выполнения?
Почему происходит выход за границы массива в функции Analyze()? C++

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

Или воспользуйтесь поиском по форуму:
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     Почему происходит ошибка при описании массива?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru