Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для TeachME
1 / 1 / 3
Регистрация: 10.12.2016
Сообщений: 48

Ошибка при инициализации линейного списка

13.11.2017, 21:42. Показов 1329. Ответов 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
#include "stdafx.h"
#include <iostream>
#include <string>
 
using namespace std;
struct Abon {
    char* Name = NULL;
    unsigned short Number = 0;
    unsigned short Time = 0;
};
struct List {
    Abon Object;
    List* Next;
};
void Print(List* begin)
{
    List* print = begin;
    while (print)
    {
        cout << "Name of abonent:" << print->Object.Name << ".\n" << "Number of abonent:" << print->Object.Number << ".\n\n------------------------------------------------------\n";
        print = print->Next;
    }
}
void Init(List** begin)
{
    *begin = new List;
    (*begin)->Next = NULL;
    int num;
    cout << "Please type the number of abonents:"; cin >> num; cout << endl;
    Abon* Abonents = new Abon[num];
    List* end = *begin;
    for (int i(0); i < num; i++)
    {
        end->Object = Abonents[i];//
        end->Next = new List;
        end = end->Next;
        //end->Object = Abonents[i];
        end->Next = NULL;
    }
    
    List* u = *begin;
    while (u)
    {
        cout << "Please enter the information about abonent:" << endl << endl;
        u->Object.Name = new char[20];
        cout << "Please enter the name:";
        cin.get();
        cin.getline(u->Object.Name, 20); cout << endl;
        cout << "Please enter his number:";
        cin >> u->Object.Number;
        u = u->Next;
 
        cout << endl;
    }
       delete[] Abonents;
}
void Add_Beg(List** begin,const Abon& ob)
{
    List* print = *begin;
    while (print)
    {
        if (print->Object.Number == ob.Number)
        {
          cout<<"Error!Abonent with this number already exist.\n"<< "Name of abonent:" << print->Object.Name << ".\n" << "Number of abonent:" << print->Object.Number << ".\n\n------------------------------------------------------\n";
          return;
        }
        print = print->Next;
    }
    List* p= new List;
    p->Object = ob;
    p->Next = *begin;
    *begin = p;
    cout << "Abonent was added." << endl;
}
 
 
int main()
{
    List* begin = NULL;
    Init(&begin);
    Print(begin);
    system("pause");
 
    return 0;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.11.2017, 21:42
Ответы с готовыми решениями:

Ошибка при создании линейного списка с типом данных в виде пользовательского класса
Добрый день. Помогите понять в чем ошибка при создании списка? int main() { setlocale(LC_ALL, &quot;Russian&quot;); ...

Ошибка при инициализации
На 3 и 4 строчку показывает отладчик при вылете. BADpixel *enemy; pixel *player; enemy = new BADpixel(75, 10, 10, player); ...

Ошибка нарушения прав доступа при чтении по адресу, возникающая при инициализации трехмерного массива
Очень нужна ваша помощь! Я уже не знаю что тут можно сделать. Код части программы, где вылазит ошибка ниже. Коротко о проблеме: я...

1
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
13.11.2017, 22:26
Лучший ответ Сообщение было отмечено TeachME как решение

Решение

В 26-й строке ты создаёшь первый узел, и после num узлов в цикле.
А массив Abonents вообще не нужен.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2017, 22:26
Помогаю со студенческими работами здесь

Ошибка при инициализации массива
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;fstream&gt; #include &lt;string&gt; using namespace std; const int MEMORY = 10000; ...

Ошибка при инициализации массива
Не понимаю, почему не работает. Массив создается после введения количества его элементов, но все равно компилятор ругается. Код работать...

Ошибка при инициализации regex_token_iterator
Объясните почему тут ошибка ? #include &lt;iostream&gt; #include &lt;cstdio&gt; #include &lt;regex&gt; #include &lt;iterator&gt; using namespace...

Ошибка при инициализации массива
В примере есть массив: sf::String TileMap = { &quot; &quot;, &quot; ...

Ошибка при инициализации строки
У меня почему-то компилятор очень сильно ругает пример из книги Герберта Шилдта «Полный справочник по C++». #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru