Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Комбинирование ключа из несколько слов https://www.cyberforum.ru/ cpp-beginners/ thread922687.html
Здравствуйте. Столкнулся с проблемой Комбинирования ключей из несколько слов. В моем варианте было предложено: Если ключ состоит из нескольких слов, то перед вычислением хеш-функции должно быть...
C++ Непонятный вызов конструктора класса
Почему в строчке d1=500; (70 стр.) вызывается конструктор CDate(500, 1, 2000)? Получается, целое число 500 перед присваиванием каким то образом преобразуется в тип CDate. Но почему? Вот это мне не...
Как вытащить исходник из exe, написанного на C# C++
Есть бэкдор, написанный на C# (для работы нужен NetFramework). Фишка в том, что когда ты его запускаешь, твой айпи отсылается автору. И вот мне нужно выскрыть exe-шник чтобы править код, чтобы...
C++ Передача функционального объекта в функцию Здорова! Никак не могу передать функциональный объект в функцию. От примерчик, функция передается нормально, а объект нет. #include <iostream> using std::cout; using std::endl; #include... https://www.cyberforum.ru/ cpp-beginners/ thread922679.html
C++ Функция strcmp https://www.cyberforum.ru/ cpp-beginners/ thread922670.html
Имеется три числа num1, num2 и det. Как используя функцию strcmp определить принадлежит ли число det, промежутку num1, num2?
C++ Выделение памяти на стеке
Добрый день. Часто в учебниках и на форуме я встречал такое выражение как "переменная создаётся в (или на) стеке". Мне непонятно, что это значит. Ведь к стеку мы обращаемся через push ax pop ax...
C++ не читает файл в Qt
дан фрагмент программы, которая должна читать сведения из текстового файла, но почему-то он этого не делает. может быть кто-нибудь сталкивался с такой проблемой? помогите пожалуйста void help()...
C++ Виртуальные функции Какие происходят изменения, когда в классе объявляем одну или несколько функций виртуальными? Вот, например, если в SuperClass перед функцией Show() написать слово virtual, то что произойдет? ... https://www.cyberforum.ru/ cpp-beginners/ thread922612.html
C++ Как сделать автоматическое обновление https://www.cyberforum.ru/ cpp-beginners/ thread922611.html
Здравствуйте! Есть программа с функцией обновления через интернет. Проверка обновления и само обновление происходит по нажатию на кнопку. А как сделать проверку обновления при запуске программы?...
C++ Движение змейки Никак не получается сделать движение змейки с последующим присоединением элементов к ней при съедании яблока. Помогите пожалуйста!!! #include <stdio.h> #include <stdlib.h> #include <conio.h>... https://www.cyberforum.ru/ cpp-beginners/ thread922593.html
5475 / 4870 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.07.2013, 00:58 0

Ошибка в логике программы

19.07.2013, 00:58. Просмотров 693. Ответов 13
Метки (Все метки)

Ответ

В своём коде я эту ошибку исправил, но вы её сохранили.
C++
1
char choice[1];
Так под строку память не выделяют. Это равнозначно:
C++
1
char choice;
Потом, в коде, в этот массив, созданный под одну char, cin читае строку:
C++
1
cin >> choice;
Получая, в качестве переменной для чтения, указатель на массив char, сin добавляет, в конец введённого, '\0'. В вашем случае (при вводе одного символа), этот терминальный ноль помещается уже за границу объявленного массива. Поэтому и ошибка появляется. Разные компиляторы такое по разному обрабатывают, но это всё равно ошибка: выход за границу массива. В самом языке, это не контролируется, но тот кто пишет код, должен за этим следить.

Вернуться к обсуждению:
Ошибка в логике программы
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.07.2013, 00:58
Готовые ответы и решения:

Ошибка при компиляции. В логике ошибок не замечено
Здравствуйте! Среда разработки Dev-С++. При компиляции выдает ошибку &quot; subscripted value is neither...

В чем ошибка? При запуске программы открывается консоль и сразу ошибка о завершении программы
К тому же выдает warning: deprecated conversion from string constant to 'char*' . #include...

Ошибка в конструкторе с параметром. Компилятор не ругается, но при запуске программы возникает ошибка
Я знаю точно, что ошибка в конструкторе с параметром. Компилятор не ругается, но при запуске моей...

Укажите где ошибка (ошибка во время выполнения программы)
Здравствуйте, помогите пожалуйста найти ошибки в коде которые возникаю при выполнении программы ...

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