Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2015, 14:00   #1
guroDragon
Пользователь
 
Регистрация: 09.09.2013
Сообщений: 83
По умолчанию связные списки

Всем привет!

Возникла проблемка. Есть у меня фун-и добавление одного элемента в список, удаление всех, вывод всех на экран. После того как я удаляю полностью список и пытаюсь вывести его - еррор, хотя у меня проверка есть в фун-и вывода на экран (если список пуст - вывести соответствующие сообщение и всё).

В чём у меня ошибка?

Код:
#include <conio.h>
#include <iostream>

using namespace std;


struct List
{
	int key;
	List* pnext;
};

List *head = NULL;

void addNewElement (int tmpKey)
{
	List *newList = new List;
	newList->key = tmpKey;
	newList->pnext = head;
	head = newList;
}

int displayList ()
{
	List *current = new List;
	current = head;
	if (current == NULL)
	{
		cout<<"It's empty"<<endl;
		return 0;
	}
	while (current)
	{
		cout<<current->key<<endl;
		current = current->pnext;
	}
	return 0;
}

int deleteList ()
{
	List *current = new List;
	List *tmp = new List;
	current = head;
	if (current == NULL)
	{
		cout<<"It's empty"<<endl;
		return 0;
	}
	while (current!=NULL)
	{
		tmp = current;
		current = current->pnext;
		delete tmp;
	}
	cout<<"LIst is done"<<endl;
	return 0;
}

int main(){
	int num(0);
	char check;
	for (;;)
	{
		system("cls");
		cout<<"1 - add"<<endl;
		cout<<"2 - display"<<endl;
		cout<<"3 - delte"<<endl;
		cout<<"Escape - exit"<<endl;
		check = _getch();
		if (check == '1')
		{
			system("cls");
			cout<<"Enter new element..";
			cin>>num;
			addNewElement (num);
		}
		if (check == '2')
		{
			system("cls");
			displayList ();
			_getch();
		}
		if (check == '3')
		{
			system("cls");
			deleteList ();
			_getch();
		}
		if (check == 27) return 0;
	}
	return 0;
}
guroDragon вне форума Ответить с цитированием
Старый 11.10.2015, 14:47   #2
guroDragon
Пользователь
 
Регистрация: 09.09.2013
Сообщений: 83
По умолчанию

Разобрался.
Я в фу-и удаления и head сам удаляю, вот и всё.

Закрывайте)
guroDragon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связные списки в СИ guroDragon Помощь студентам 0 10.05.2014 12:42
Си связные списки. guroDragon Помощь студентам 0 09.05.2014 23:13
Связные списки c++ cheef Помощь студентам 5 11.03.2012 22:12
Связные списки MasterSporta Общие вопросы C/C++ 2 19.05.2011 02:30
Связные списки Маринка777 Общие вопросы .NET 3 08.06.2010 23:41