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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Подскажите пожалуйста, можно ли считать данный код реализацией очереди. http://www.cyberforum.ru/cpp-beginners/thread712167.html
Подскажите пожалуйста, можно ли считать данный код реализацией очереди. и если нет, то почему. #include <stdlib.h> #include <stdio.h> typedef struct LIST{ int val; struct LIST *ptr; };
C++ Записать количество символов в файл Вот сам скрипт пишет в файл символы а нужно что бы писало количество этих символов Точней припустим я нажал 10 раз и в текстовом доке появилось 10 число а когда нажал 20 то 10 заменить на 20 #include <windows.h> #include <winuser.h> using namespace std; int S (int key, char *files) { //if ( (key == 1) || (key == 2) ) http://www.cyberforum.ru/cpp-beginners/thread712166.html
C++ Вычислить сумму ряда
Дано натуральное число N. Вычислить: s=\sum_{i=1}^{N}\frac{i!}{(N+i)!} помогите
Вычислить C++
Помогите пж. вычислить(при ближенные формулы) :))
C++ if/else if коряво работает http://www.cyberforum.ru/cpp-beginners/thread712138.html
Здарвствуйте, что-то неправило работает программа. думалось, что если времмы в формате hh:mm:ss введено корректно пишетса что правелон а если там какието заоблочные цифры, то выдаёт что неверный формат, а у меня всегда правильно пишет. ... if(00 <= hh <= 23 && 00 <= mm <= 59 && 00 <= ss <= 59) { cout << " Correct " << endl; }
C++ Двумерные массивы. Сформировать по условию. Дали задачу - Заполнить матрицу случайными числами ( это понятно - через рандом).Разбить матрицу на квадраты 3х3(!). В центр каждого квадрата поместите сумму остальных элементов квадрата. Кто поможет с этой абракадаброй - буду очень благодарен. подробнее

Показать сообщение отдельно
StalkerSmerch
1 / 1 / 2
Регистрация: 04.03.2012
Сообщений: 159
28.11.2012, 17:31     Ошибка со структорой
При выполнении программы вылетает на строчке при вызове структуры(отмечена сбоку комментариями). Помогите понять в чём ошибка.
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;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru