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

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

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

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

28.01.2014, 20:50. Просмотров 236. Ответов 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++
#include &lt;string&gt; int main() { std::string s; s; } Исключения не происходит. Внимание вопрос: я схожу с ума, я не знаю цпп...

Подскажите почему происходит ошибка в вычислении - C++
При введении следующих параметров (60 2.3 3) выходит ответ 4rub. 13cop. хотя должен выдавать 4rub. 14cop. , не могу разобраться почему...

Почему происходит ошибка времени выполнения? - C++
прошу помощи в поиске ошибки! уже 2часа пытаюсь найти и никак... Тоже задание по структуре. над ошибкой уже 2 час сижу не могу понять...

Почему происходит выход за границы массива в функции Analyze()? - C++
#include &quot;Analyzer.h&quot; #include &quot;HashTable.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; ...

Почему при чтении бинарного файла происходит экстренное завершение программы? - C++
в Windows XP при чтение бинарного файла происходит екстренное завершение программы !!! /*Writing to a random access file */ #include...

Почему при вводе в массив числа отличного от 1 и 2 все равно происходит начисление К+1 - C++
K=0; for (i=1;i&lt;=4;i++){ cout&lt;&lt;&quot;Vvedite otvet:&quot;; cin&gt;&gt;one; if ((one=1)||(one=2)) K=K+1; }

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

Добавлено через 3 минуты
а вообще, насколько я понял фишка компилятора, на некоторых пройти может
MrGluck
Модератор
Эксперт CЭксперт С++
7182 / 4348 / 634
Регистрация: 29.11.2010
Сообщений: 11,839
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Эксперт С++
7182 / 4348 / 634
Регистрация: 29.11.2010
Сообщений: 11,839
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++
Доброго времени. #include &lt;iostream.h&gt; #include &lt;math.h&gt; class OKTAVE { public: OKTAVE(unsigned int Leng) ...

При удалении элемента из списка происходит непонятная ошибка - C++
Приложила файл, который должен лежать в папке с кодом. При выполнении на первом поиске ищете &quot;nazv1&quot;, и потом его удаляете. И после этого...

При инициализации указателя на функцию происходит ошибка сборки программы - C++
Здравствуйте, захотелось написать мне более-менее масштабируемую структуру типа словарь, причем без использования шаблонов. Для этого я...

Ошибка в описании структуры - C++
Я новичок. Не могу разобраться как нормально описать структуру(( компилятор пишет ошибку. на first.a=1; #include &lt;stdio.h&gt; int...


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

Или воспользуйтесь поиском по форуму:
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