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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2010, 15:46   #11
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от Anatole Посмотреть сообщение
и в конце програмы ставим
Код:
SetLength(myAr,0);
.
А вот для этого достаточно сделать так myAr:=nil; именно так осуществляется освобождение памяти, выделенной динамическому массиву.
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 06.05.2010 в 15:51.
Grag вне форума Ответить с цитированием
Старый 06.05.2010, 15:55   #12
Anatole
Форумчанин
 
Аватар для Anatole
 
Регистрация: 07.04.2009
Сообщений: 245
По умолчанию

Цитата:
myAr:=nil; именно так осуществляется освобождение памяти,
Выражение
Код:
myAr:=nil
просто присваивает "неопределённое" значение указателю, а не освобождает память. Для освобждения памяти необходимо обратиться к менеджеру памяти, что и делает неявно процедура SetLength
Всякое безобразие должно быть единообразным. Тогда это называется порядком.
Anatole вне форума Ответить с цитированием
Старый 06.05.2010, 16:03   #13
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Тексейра и Пачеко по этому вопросу пишут:
"Динамические массивы - это тип данных с управляемым временем жизни, поэтому можно не заботиться о своевременном освобождении выделенной им памяти. Она будет освобождена автоматически, когда переменная покинет область видимости. Однако это не значит, что нельзя самостоятельно освободить память при необходимости. Для этого достаточно просто присвоить массиву значение nil."
Читайте классиков программирования!!!

А вот еще из другого источника: (http://old.softerra.ru/review/program/20000/page1.html)
"Динамические массивы – это неявные указатели и обслуживаются тем же самым механизмом, который используется для обработки длинных строк (long strings). Чтобы освободить память, занимаемую динамическим массивом, присвойте переменной, которая ссылается на массив, значение nil: A:=nil."
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 06.05.2010 в 16:15.
Grag вне форума Ответить с цитированием
Старый 06.05.2010, 16:26   #14
Anatole
Форумчанин
 
Аватар для Anatole
 
Регистрация: 07.04.2009
Сообщений: 245
По умолчанию

Grag Придётся соглясится. Для Делфи это справедливо. У меня автоматом работает привычка ещё с ASCII PASCAL "вручную" работать с памятью. Приношу свои извинения.
Всякое безобразие должно быть единообразным. Тогда это называется порядком.
Anatole вне форума Ответить с цитированием
Старый 06.05.2010, 16:28   #15
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Да не вопрос, просто в споре истина рождается!!!
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 06.05.2010, 16:37   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Anatole
Книги книгами а полезно заглянуть в отладчик, порядок :=nil - DynArrayClear - FreeMem - Работа с менеджером памяти
Изображения
Тип файла: jpg Безымянный.JPG (73.9 Кб, 12 просмотров)
Тип файла: jpg Безымянный2.JPG (61.9 Кб, 34 просмотров)
Тип файла: jpg Безымянный3.JPG (81.9 Кб, 141 просмотров)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.05.2010, 16:11   #17
LastBreath
Пользователь
 
Регистрация: 04.05.2010
Сообщений: 12
По умолчанию

Всем большое спасибо!!! Вроде разобрались
LastBreath вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический массив Ueshua Общие вопросы C/C++ 3 19.12.2009 22:12
Динамический массив Vito89 Общие вопросы Delphi 3 20.10.2009 01:20
динамический массив Cpluser Общие вопросы C/C++ 1 20.09.2009 18:17
Динамический массив _ares_ Паскаль, Turbo Pascal, PascalABC.NET 3 26.12.2007 23:54
Паскаль. Динамический массив KORT Паскаль, Turbo Pascal, PascalABC.NET 2 29.09.2007 23:08