Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
15 / 15 / 8
Регистрация: 15.08.2013
Сообщений: 190
1

Ошибка программы в массивах указателей

31.10.2016, 18:45. Показов 366. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер уважаемые. Возник вопрос , почему если я ввожу любое другое слово кроме тех которые не в массиве. Программа выводит не
C++
1
2
if (!*dictionary[i][0])
cout <<word<<" Не найдено.\n ";
а выводит "Segmentation fault (core dumped)"


Подскажите пожалуйста с чем это связанно


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <cstring>
using namespace std;
 
int main()
{
char *dictionary[][2]={
"карандаш", "инструмент для рисования.",
"клавиатура" ,"устройство ввода.",
"ружье","Плечевое огнестрельное оружие",
"Самолет","Воздушное судно с неподвижными крыльями",
"сеть", "группа соедененных между собой компьютеров",
" ", " "};
char word[80];
int i;
 
cout << "Введите слово: ";
cin >> word;
 
        for (i=0;*dictionary[i][0];i++)
        {
        if(!strcmp(dictionary[i][0],word))
                {
                cout << dictionary [i][1]<<'\n';
                break;
                }
        }
 
if (!*dictionary[i][0])
cout <<word<<" Не найдено.\n ";
 
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2016, 18:45
Ответы с готовыми решениями:

Ошибка в двумерных массивах
Пишет ошибку Run-Time Check Failure #2 - Stack around the variable 'mas2' was corrupted. ...

Программы с использованием динамических массивов и указателей
Написать программы с использованием динамических массивов и указателей. Начальные размерности...

Реализация программы с использованием ссылок и указателей
Добрые люди! Подскажите, есть ли тут использованные ссылки и указатели? Препод не принимает...

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

1
18901 / 9859 / 2410
Регистрация: 30.01.2014
Сообщений: 17,301
31.10.2016, 18:55 2
Цитата Сообщение от MRG_Serejka Посмотреть сообщение
почему
Потому что останов цикла у тебя достигается при проверке на ноль первого символа одной из строк. А у тебя нет такой строки в этом массиве, которая бы обеспечила корректный выход из цикла.
Сделай так (см. комментарий):
C++
1
2
3
4
5
6
7
8
9
    char const *dictionary[][2]=
    {
        "карандаш", "инструмент для рисования.",
        "клавиатура","устройство ввода.",
        "ружье","Плечевое огнестрельное оружие",
        "Самолет","Воздушное судно с неподвижными крыльями",
        "сеть", "группа соединенных между собой компьютеров",
        "" // <! здесь
    };
1
31.10.2016, 18:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2016, 18:55
Помогаю со студенческими работами здесь

Объясните как записать код программы с использованием указателей
Раскрасить в массиве при выводе бирюзовым цветом отрицательные элементы на главной диагонали,...

Алгоритмы и программы по использованию указателей и динамических структур данных
Здравствуйте! Прошу Вас помочь мне в написании задачи на С++. Вот текст: Дан указатель P1 на...

Алгоритмы и программы по использованию указателей и динамических структур данных
Здравствуйте! Помогите, пожалуйста, написать задачу. Вот текст:Дан указатель P0 на один из...

Почему в сортировке указателей на объекты в вызове функции используются адреса объектов, а не указателей?
Доброго времени суток! Рассматриваю пример (из Лафоре) сортировки массива указателей на объекты,...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru