/
n-dimens
/
pascalabcnet
Обзор
Документация
Войти
/
n-dimens
/
pascalabcnet
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
PABCNetHelp/LangGuide/MemoryManagement/index_memory.html
45 строк
3 KB
samuraiGH
adding working-tree-encoding attribute (#3325)
07 ноя 2025, 16:12
Не верифицирован
07 ноя 2025, 16:12
cf1fd29
Код
Авторство
О чём код?
<html> <head> <object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e"> <param name="Keyword" value="Сборщик мусора"> </object> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title></title> <link rel="StyleSheet" href="../../default.css"> </head> <body> <H1>Управление памятью </H1> <p>Все ссылочные типы в .NET находятся под управлением так называемого <font color="#FF0000"><i><b>сборщика мусора</b></i></font>. Это значит, что выделенная вызовом конструктора память никогда не возвращается явно вызовом деструктора. После того как объект становится не нужным, ему следует присвоить <code>nil</code>. </p> <p>При нехватке динамической памяти выполнение программы приостанавливается, и запускается специальная процедура, называемая сборкой мусора. Она определяет все так называемые достижимые объекты. Если на данный объект более никто не указывает, то он считается недостижимым и будет собран сборщиком мусора. Время вызова сборщика мусора считается неопределенным.</p> <p>Например, при выполнении участка кода</p> <blockquote> <p> <code><b>type</b> <br> Person = <b>class</b><br> ...<br> end;<br> <b>var</b> p: Person := <b>new</b> Person('Иванов',20);<br> ...<br> p := nil;</code></p> </blockquote> <p>память, отведенная под <code>p</code>, после присваивания ей <code>nil</code> станет недостижимой и будет собрана в непредсказуемый момент.</p> <p><span lang="ru">Отметим, что динамическая память, выделяемая процедурой </span>New<span lang="ru"> и контролируемая <a href="../Types/pointers.html"> указателями</a>, не находится под управлением сборщика мусора, поэтому нуждается в явном освобождении вызовом процедуры </span>Dispose<span lang="ru">. Именно поэтому работа с обычными указателями считается в </span><b>PascalABC.NET</b> <span lang="ru">устаревшей и не рекомендуется к использованию.</span></p> </body> </html>