Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
MRG_Serejka
15 / 15 / 7
Регистрация: 15.08.2013
Сообщений: 177
Завершенные тесты: 2
#1

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

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

Добрый вечер уважаемые. Возник вопрос , почему если я ввожу любое другое слово кроме тех которые не в массиве. Программа выводит не
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2016, 18:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка программы в массивах указателей (C++):

Ошибка в двумерных массивах - C++
Пишет ошибку Run-Time Check Failure #2 - Stack around the variable 'mas2' was corrupted. Задание:Сформировать двумерный массив A(4,3)...

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

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

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

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

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

1
DrOffset
7471 / 4467 / 1015
Регистрация: 30.01.2014
Сообщений: 7,321
31.10.2016, 18:55 #2
Цитата Сообщение от MRG_Serejka Посмотреть сообщение
почему
Потому что останов цикла у тебя достигается при проверке на ноль первого символа одной из строк. А у тебя нет такой строки в этом массиве, которая бы обеспечила корректный выход из цикла.
Сделай так (см. комментарий):
C++
1
2
3
4
5
6
7
8
9
    char const *dictionary[][2]=
    {
        "карандаш", "инструмент для рисования.",
        "клавиатура","устройство ввода.",
        "ружье","Плечевое огнестрельное оружие",
        "Самолет","Воздушное судно с неподвижными крыльями",
        "сеть", "группа соединенных между собой компьютеров",
        "" // <! здесь
    };
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2016, 18:55
Привет! Вот еще темы с ответами:

по поводу указателей. Как правильно задавать массив указателей и его удалять? - C++
Т.е., например создаю указатель: TPoint *p_Point=NULL; а если массив? TPoint *p_MassPoint; //=?; как массив обнулить не ясно ...

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

Ошибка при переборе массива с использованием указателей - C++
Собственно сабж. Есть код int m = {4,5,46,57,35,65,35,55,45,95}; for (int *p = &amp;m; p&lt;&amp;m; p++) { cout &lt;&lt; m &lt;&lt;...

Создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей - C++
Задача: создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей. Вернуть адрес...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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