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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
WASAW
3 / 3 / 0
Регистрация: 10.11.2009
Сообщений: 102
#1

Создать класса «однонаправленный кольцевой список». - C++

09.10.2011, 22:31. Просмотров 1429. Ответов 5
Метки нет (Все метки)

Подскажите пожалуйста, в чем ошибка, так как компилятор ошибку не выдает, одна при запуске вылетает, при отладке вылетает на этой строке
C++
1
*pend =  temp;
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
class Node
    {
        public:
        int d; // Данные
        Node *next; // Указатель на последующий узел
        Node ()
        { // Конструктор
             next = 0; 
        }
    };
 
    class List
    {
        Node *pbeg, *pend; // Указатели на начало 
        public:
        List(){pbeg = 0; pend = 0;} //Конструктор
        ~List(){}; // Деструктор
        void add(int data)// Добавление узла в конец списка
        {
            Node temp(data);
            temp.next = pbeg;
            *pend =  temp;  // НА этом вылетает
        }
        
    };
 
int main()
{
    List element;
    element.add(5);
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2011, 22:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать класса «однонаправленный кольцевой список». (C++):

Создать однонаправленный кольцевой список целых чисел - C++
Помогите написать программу (СРОЧНО)!!! Тип списка:Однонаправленный кольцевой Элемент списка: целое Создать список из...

Сформировать однонаправленный кольцевой список - C++
Ребят, выручайте пожайлуста буду очень и очень признателен. Сформировать однонаправленный кольцевой список и провести удвоение буквы...

Кольцевой однонаправленный список, вывод списка на экран - C++
Ввод и вывод списка. Ввод вроде работает, а вывод списка не работает, выводится ошибка в этой строке: cout << pv-> data << " "; ...

Используя кольцевой однонаправленный список, реализовать детскую считалку - C++
Всем привет. Есть задача: Используя кольцевой однонаправленный список, реализовать детскую считалку — N ребят расположены по кругу, начав...

Сформировать однонаправленный кольцевой список и провести удвоение буквы "Т" в нем - C++
Задание: Сформировать однонаправленный кольцевой список и провести удвоение буквы "Т" в нем - C++ (Код выдает ошибку "unresolved...

Сформировать однонаправленный кольцевой список и провести удвоение буквы "Т" в нем - C++
Сформировать однонаправленный кольцевой список и провести удвоение буквы "Т" в нем (код выдает ошибку"unresolved externals" -никак...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
09.10.2011, 23:11 #2
temp - автоматический объект. Локальная переменная, по другому. То есть она не существует за пределами метода add. А вы её адрес присваиваете указателю pend.

Добавлено через 1 минуту
Да, и конструкторы лучше делать так:

C++
1
List() : pbeg(0), pend(0) { }
Список инициализации называется.
0
WASAW
3 / 3 / 0
Регистрация: 10.11.2009
Сообщений: 102
12.10.2011, 00:45  [ТС] #3
А как тогда правильно исправить?
0
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
12.10.2011, 00:51 #4
Вам нужно динамическое выделение памяти через new. Соответственно, и освобождение через delete.
0
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
12.10.2011, 08:12 #5
Цитата Сообщение от talis Посмотреть сообщение
А вы её адрес присваиваете указателю pend.
Проблема в другом. pend = 0 с последующим *pend=temp;.
1
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
12.10.2011, 10:32 #6
Да, разименовывания не заметил. Однако, всё равно, нужно динамическое выделение памяти.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2011, 10:32
Привет! Вот еще темы с ответами:

Кольцевой двусвязный список шаблон класса ошибки - C++
Код выдаёт некоторые ошибки (прикрепили, на картинке): Что исправить? #include "StdAfx.h" #ifndef __list #define...

Создать однонаправленный список, перегрузить операции + [] == >> << - C++
Создать однонаправленный список с элементами типа char и перегрузить операции , &lt;&lt;, &gt;&gt;, ==, + Дублирование тем запрещено правилами...

Однонаправленный список, где создать указатель на первый элемент? - C++
struct listNode{ char data; listNode *next; }; class List{ public: void add(char); int delete (int); int...

Создать класс, реализующий однонаправленный список на основе одномерного массива - C++
Здравствуйте, уважаемые гуру, асы и прочие гении программирования С++ Помогите пожалуйста решить данную задачку, буду рад любой помощи :)...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.10.2011, 10:32
Ответ Создать тему
Опции темы

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