![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 24.03.2010
Сообщений: 5
|
![]()
Столкнулся с такой проблемой, не пойму в чем дело.
Код:
Последний раз редактировалось Stilet; 25.03.2010 в 08:06. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Почему Вы собственно решили что это проблема?
И в переменной остается не 5, а адрес ячейки где это число хранится. А это большая разница. Память высвобождается в том смысле, что ее можно использовать повторно, речь об инициализации выделенной памяти не идет. Освобожденный блок памяти считается свободным, но информацию оттуда надо удалять вручную (если надо).
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 24.03.2010
Сообщений: 5
|
![]()
Получается что я очищаю динамическую переменную, а она остается. А потом может быть этот блок памяти может быть использован для других целей? И как я теперь должен избавиться от этой 5?
Будет ли высвобождена память в этом случае Код:
Код:
Последний раз редактировалось Stilet; 25.03.2010 в 08:06. |
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
![]() А зачем Вам избавляться от 5-ки? Можете сделать две вещи: а) изменить указатель q:=nil; б) изменить значение ячейки q^:=0; (до Dispose)
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
|
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 24.03.2010
Сообщений: 5
|
![]()
я должен избавиться от последнего элемента однонаправленного списка, как будет правильно
так Код:
Последний раз редактировалось Stilet; 25.03.2010 в 08:06. |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Первый вариант, ИМХО.
ЗЫ. Для всяких там списков и стеков я использую динамические массивы и никогда не парюсь с указателями ![]()
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 25.03.2010 в 07:48. |
![]() |
![]() |
![]() |
#7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
т.е. вариант Уткина №А
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#8 |
Новичок
Джуниор
Регистрация: 24.03.2010
Сообщений: 5
|
![]()
Если я последний указатель сделаю nil, тогда блок памяти на который раньше ссылался этот указатель останется не освобожденным, так как теперь этот указатель просто не будет никуда ссылаться. Поэтому если q - последний указатель, то будет ли корректно реализована очистка
Код:
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Закинь ты свой вариант с промежуточной переменной. Мне кажется ты уже давно решил для себя как поступишь, а не спрашиваешь совета.
Код:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#10 |
Новичок
Джуниор
Регистрация: 24.03.2010
Сообщений: 5
|
![]()
Просто я хочу разобраться что все таки происходит в результате подобных действий в подробностях. Если бы мне просто нужно было решение я бы и не заморачивался. Мне нужно глубокое понимание данного вопроса.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
динамическая память в си | Serjuk | Помощь студентам | 0 | 27.12.2009 13:54 |
Динамическая память!!! | Doholyan | Паскаль, Turbo Pascal, PascalABC.NET | 12 | 30.06.2009 17:11 |
динамическая память | aka_faith | Общие вопросы C/C++ | 47 | 12.06.2009 12:35 |