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

Ошибка со структорой - C++

Восстановить пароль Регистрация
 
StalkerSmerch
1 / 1 / 2
Регистрация: 04.03.2012
Сообщений: 159
28.11.2012, 17:31     Ошибка со структорой #1
При выполнении программы вылетает на строчке при вызове структуры(отмечена сбоку комментариями). Помогите понять в чём ошибка.
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#include <string> //Подключаем библеотеку для работы со строками
#include <iostream> //Подключаем библиотеку потокового ввода/вывода
#include <locale.h> //Подключаем библиотеку для работы с русским языком
#include <fstream> //Подключаем библиоттеку для работы со строчками из файла
 
using namespace std; //Использование пространства имен std
 
struct firstList 
{
    string numberBus;
    string nameDriver;
    int numberRoute;
    firstList *nextList;
};
firstList *firstHead;
firstList *secondHead;
 
void firstSet(string nB,string nD){
    firstList *p= firstHead;
    if(firstHead==NULL){
        cout<<"1111111111111";
        cout<<nB;
        firstHead->numberBus=nB;  //Ошибка на этой строчке
        cout<<"1111111111111";
        firstHead->nameDriver=nD;
        cout<<"1111111111111";
        firstHead->nextList=NULL;
        cout<<"Добавлена запись";
        return;
    }
    while(1){
        if((p)->numberBus==nB){
            cout<<"Автобус уже есть в данном списке"<<endl;
            return;
        }
        if((p)->nextList==NULL)
            break;
        (p)=(p)->nextList;
    }
    (p)->numberBus=nB;
    (p)->nameDriver=nD;
    (p)->nextList=NULL;
}
void secondSet(string nB,string nD){
    firstList* p=secondHead;
    if(secondHead==NULL){
        (secondHead)->numberBus=nB;
        (secondHead)->nameDriver=nD;
        (secondHead)->nextList=NULL;
        cout<<"Добавлена запись";
        return;
    }
    while(1){
        if((p)->numberBus==nB){
            cout<<"Автобус уже есть в данном списке"<<endl;
            return;
        }
        if((p)->nextList==NULL)
            break;
        (p)=(p)->nextList;
    }
    (p)->numberBus=nB;
    (p)->nameDriver=nD;
    cout<<"Введите номер маршрута: "<<endl;
    cin>>(p)->numberRoute;
    (p)->nextList=NULL;
}
void del(firstList* head,string nB){
    firstList* p=head;
    firstList* buf=NULL;
    if((head)->numberBus==nB){
        (head) =(p)->nextList;
        return;
    }
    (p)=(head);
    while (true) {
        buf = p;
        if ((p)->nextList == NULL) {
            break;
        }
        (p)=(p)->nextList;
        if ((p)->numberBus== nB) {
            (p)=(p)->nextList;
            (buf)->nextList = (p);
            return;
        }
    }
}
void out(string nB){
    firstList* p=firstHead;
    while(1){
        if((p)->numberBus==nB)
            break;
        if((p)->nextList==NULL){
            cout<<"Автобус не найден в парке"<<endl;
            return;
        }
        (p)=(p)->nextList;
    }
    secondSet((p)->numberBus,(p)->nameDriver);  
    del(firstHead,nB);
    return;
}
void in(string nB){
    firstList* p=secondHead;
    while(1){
        if((p)->numberBus==nB)
            break;
        if((p)->nextList==NULL){
            cout<<"Автобус не найден в парке"<<endl;
            return;
        }
        (p)=(p)->nextList;
    }
    firstSet((p)->numberBus,(p)->nameDriver);   
    del(secondHead,nB);
    return;
}
 
int main() //Начало функции main
{   
    setlocale(LC_ALL,"rus"); //Выключаем русский язык
    string numB;
    string nameD;
    int i=0,j=0;
    cout<<"Создание списка автобусов находящихся на стоянке"<<endl;
    while(1){
        cout<<i<<". Номер автобуса: ";
        cin>>numB;
        cout<<" Имя водителя: ";
        cin>>nameD;
        cout<<endl;
        firstSet(numB, nameD);
        cout<<"Добавить ещё запись? 1(Да)/0(Нет)"<<endl;
        cin>>j;
        if(j==0)
            break;
        i++;
    }
    cout<<"Меню:"<<endl;
    cout<<"1. Выезд автобуса из парка"<<endl;
    cout<<"2. Въезд автобуса в парк"<<endl;
    cout<<"3. Список автобусов в парке"<<endl;
    cout<<"4. Список автобусов на выезде"<<endl;
    cin>>j;
    switch(j){
    case 1: cout<<"Введите номер автобуса который выехал из парка:"<<endl;
        cin>>numB;
        out(numB);
        break;
    case 2: cout<<"Введите номер автобуса который заехал в парк:"<<endl;
        cin>>numB;
        in(numB);
        break;
    }
} //Конец функции main
Заранее спасибо!

Добавлено через 28 минут
Тупанул, нашёл решение firstHead=new firstList;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2012, 17:31     Ошибка со структорой
Посмотрите здесь:

Ошибка при компиляции. Где ошибка? (Работа с классом) C++
Ошибка в конструкторе с параметром. Компилятор не ругается, но при запуске программы возникает ошибка C++
C++ Ошибка с графикой в приложении Windows form (ошибка не в коде!)
Выскакивает ошибка Stack around the voriable 'text' was corrupted. Подскажите пожалуйста в чём ошибка C++
C++ Укажите где ошибка (ошибка во время выполнения программы)
Синтаксическая ошибка: Ошибка 1 error C2059 C++
Ошибка 2 error LNK2019, не пойму в чем ошибка C++
Ошибка в коде (Ошибка сегментирования (core dumped) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 01:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru