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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2008, 09:30   #1
viku_11
Новичок
Джуниор
 
Регистрация: 25.11.2008
Сообщений: 1
По умолчанию Пустой список

Подскажите, пожалуйста, как сделать пустым однонаправленный список в С++?
Код:
struct List
{
int info;
List * next;
}
viku_11 вне форума Ответить с цитированием
Старый 25.11.2008, 10:13   #2
Ламер_001
Ну и что? :)
Форумчанин
 
Регистрация: 20.10.2008
Сообщений: 129
По умолчанию

всмысле удалить все элементы стека (освободить память) ?
Учиться, учиться и еще раз учиться
Ламер_001 вне форума Ответить с цитированием
Старый 25.11.2008, 12:26   #3
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Поместить в начальный указатель NULL
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 25.11.2008, 12:55   #4
StarWorm
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 233
По умолчанию

Вся память, котоорая выделялась динамически - будет утеряна!!!
Так нельзя вроде бы!
StarWorm вне форума Ответить с цитированием
Старый 25.11.2008, 13:38   #5
como
Форумчанин
 
Регистрация: 26.07.2008
Сообщений: 116
По умолчанию

Цитата:
Сообщение от StarWorm Посмотреть сообщение
Вся память, котоорая выделялась динамически - будет утеряна!!!
Так нельзя вроде бы!
Студентам можно.
como вне форума Ответить с цитированием
Старый 25.11.2008, 19:27   #6
theos
Форумчанин
 
Аватар для theos
 
Регистрация: 10.12.2007
Сообщений: 158
По умолчанию

Если есть список с корневым элементом List *root, память под который выделялась динамически ...

Код:
List *current;
while(root)
{
  current = root->next;
  delete root; // или free(root); если использовался malloc
  root = current;
}
Это полное удаление. Если Вы хотите, чтоб остался последний (и единственный) элемент, то условие надо заменить на
Код:
...
while(root->next)
{
...

Обратите внимание, что если у вас не сохранился указатель на 1й элемент, освободить память вы уже не сможете.
theos вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Данные-проверка-список (список на другом листе) Inbox Microsoft Office Excel 7 26.12.2008 01:43
Пустой список Executr Общие вопросы Delphi 5 02.06.2008 20:55
Удалить не пустой каталого Иллидан Общие вопросы Delphi 14 19.05.2008 08:55