16. Ссылочный тип данных. Динамическая память. Динамические переменные. Работа с динамической памятью
Статической переменной (статически размещенной) называется описанная явным образом в программе переменная, обращение к ней осуществляется по имени. Место в памяти для размещения статических переменных определяется при компиляции программы. В отличие от таких статических переменных в программах, написанных на языке Pascal, могут быть созданы динамические переменные. Основное свойство динамических переменных заключается в том, что они создаются, и память для них выделяется во время выполнения программы.
Размещаются динамические переменные в динамической области памяти (heap-области). Динамическая переменная не указывается явно в описаниях переменных, и к ней нельзя обратиться по имени. Доступ к таким переменным осуществляется с помощью указателей и ссылок.
Cсылочный тип (указатель) определяет множество значений, которые указывают на динамические переменные определенного типа, называемого базовым типом. Переменная ссылочного типа содержит адрес динамической переменной в памяти. Если базовый тип является еще не описанным идентификатором, то он должен быть описан в той же самой части описания типов, что и тип-указатель.
Зарезервированное слово nil обозначает константу со значением указателя, которая ни на что не указывает.
Приведем пример описания динамических переменных.
var p1, p2: ^real;
p3, p4: ^integer;
...
Процедуры и функции работы с динамической памятью
1. Процедура New{var p: Pointer).
Выделяет место в динамической области памяти для размещения динамической переменной p", и ее адрес присваивает указателю p.
2. Процедура Dispose(var p: Pointer).
Освобождает участок памяти, выделенный для размещения динамической переменной процедурой New, и значение указателя p становится неопределенным.
3. Процедура GetMem(var p: Pointer; size: Word).
Выделяет участок памяти в heap-области, присваивает адрес его начала указателю p, размер участка в байтах задается параметром size.
4. Процедура FreeMem(varp: Pointer; size: Word).
Освобождает участок памяти, адрес начала которого определен указателем p, а размер - параметром size. Значение указателя p становится неопределенным.
5. Процедура Mark{var p: Pointer) записывает в указатель p адрес начала участка свободной динамической памяти на момент ее вызова.
6. Процедура Release(var p: Pointer) освобождает участок динамической памяти, начиная с адреса, записанного в указатель p процедурой Mark, т. е. очищает ту динамическую память, которая была занята после вызова процедуры Mark.
7. Функция MaxAvail: Longint возвращает длину в байтах самого длинного свободного участка динамической памяти.
8. Функция MemAvail: Longint возвращает полный объем свободной динамической памяти в байтах.
9. Вспомогательная функция SizeOf(X):Word возвращает объем в байтах, занимаемый X, причем X может быть либо именем переменной любого типа, либо именем типа.
Автор: Цветкова А.В.
<< Назад: Модули. Виды модулей
>> Вперед: Абстрактные структуры данных
Рекомендуем интересные статьи раздела Конспекты лекций, шпаргалки:
▪ Коррекционная психология. Шпаргалка
▪ Терия организации. Шпаргалка
▪ Госпитальная терапия. Шпаргалка
Смотрите другие статьи раздела Конспекты лекций, шпаргалки.
Читайте и пишите полезные комментарии к этой статье.
<< Назад
Последние новости науки и техники, новинки электроники:
Тающие айсберги создают новые оазисы жизни на дне океана
30.06.2026
Глобальное потепление активно меняет облик нашей планеты, и одним из наиболее заметных его проявлений становится ускоренное таяние ледников в полярных регионах. Этот процесс не только приводит к подъему уровня Мирового океана, но и вызывает цепную реакцию в морских экосистемах, порой создавая неожиданные и парадоксальные последствия. Массовое высвобождение айсбергов из Гренландии - яркий пример того, как климатические изменения перестраивают жизнь в самых глубоких и удаленных уголках океана.
Из-за повышения температуры количество айсбергов, откалывающихся от гренландских ледников, стремительно растет. Ученые проанализировали данные за последние 40 лет и установили, что с 2000 года поток ледяных глыб через пролив Фрама увеличился в четыре раза. Об этом сообщает Futurism со ссылкой на исследование специалистов из Технического университета Дании.
Такое беспрецедентное нашествие айсбергов представляет серьезную опасность для международного судоходства. Одновременно оно радикально тра ...>>
Робот-тьютор Optio, помошник школьника
30.06.2026
Икусственный интеллект и робототехника все активнее помогают учителям и ученикам, делая обучение более персонализированным и увлекательным. Гуманоидные роботы, способные взаимодействовать с людьми естественным образом, открывают новые возможности для школ, особенно в условиях нехватки педагогических кадров и растущего интереса к технологиям. Одна из таких инновационных инициатив стартовала в американском штате Нью-Йорк.
Компания Realbotix запустила своего помощника учителя на базе искусственного интеллекта под названием Optio в Центральном школьном округе Саламанки. Робот выступает в роли тьютора, предлагая персонализированное репетиторство, многоязычную помощь с домашними заданиями и круглосуточную академическую поддержку. По данным Interesting Engineering, проект направлен на повышение вовлеченности учащихся и внедрение передовых технологий в учебный процесс.
В рамках пилотной программы школы округа планируют интегрировать человекоподобных роботов в классы. Изначально Optio буд ...>>
Биопрепараты повышают питательную ценность органической гречихи
29.06.2026
В органическом земледелии особое внимание уделяется не только урожайности, но и качественному составу продукции. Потребители все чаще выбирают продукты с высоким содержанием полезных веществ и без следов химических веществ. Исследования показывают, что применение биологических препаратов может существенно улучшить минеральный состав зерновых культур, делая их более ценными с точки зрения питания.
В результате полевых экспериментов, проведенных в 2023-2025 годах, ученые установили, что использование биопрепаратов способствует активному накоплению макроэлементов, в частности фосфора и калия, в зерне органической гречихи. Об этом сообщила Леся Крупак из Белоцерковского национального аграрного университета в своей работе "Экологичность и производительность".
Наиболее заметный эффект наблюдался при применении гумата калия. В этом случае содержание калия в зерне увеличивалось на 19-21 процент по сравнению с контрольными участками. Такой результат свидетельствует об улучшении работы тра ...>>
Случайная новость из Архива Дышащие биоаккумуляторы
24.03.2013
Ученые из Института физической химии Польской академии наук разработали новый тип источника электроэнергии. Элемент питания с относительно высоким напряжением и длительным сроком службы представляет собой "дышащий" катод на основе ферментов, углеродных нанотрубок и силикатов.
Новый аккумулятор может найти применение прежде всего для питания различных имплантатов, например кардиостимуляторов или контактных линз с автоматическим изменением фокусного расстояния или проектором, транслирующим картинку прямо на сетчатку глаза. Обычные аккумуляторы для этих целей не годятся, поскольку имеют в своем составе сильные кислоты и другие активные вещества, опасные для здоровья.
Польские ученые решили разработать биоаккумулятор, который не нужно заряжать: достаточно поместить электроды в тело, и они начнут вырабатывать электричество. Биоаккумуляторы известны давно: наверняка все помнят школьный эксперимент с картофелем, который вырабатывал электричество при подключении электродов. К сожалению, большинство экспериментальных биоаккумуляторов выдают низкое напряжение в 0,6-0,7 вольт. Однако польским исследователям удалось создать биоаккумулятор, который в течение многих часов выдает гораздо большее напряжение: 1,75 вольт. Этого уже достаточно для питания многих имплантатов и перспективных нейроинтерфейсов.
Основным компонентом нового биоаккумулятора является катод из ферментов, которые окружены углеродными нанотрубками и заключены в пористую структуру на основе силикатной матрицы. Для того, чтобы аккумулятор заработал, достаточно залить в устройство электролит, например раствор с ионами водорода. Поры в силикатной матрице позволяют кислороду из воздуха и ионам водорода поступать в активный ферментный сердечник катода, где происходит восстановление кислорода. При этом углеродные нанотрубки облегчают перенос электронов.
В ходе экспериментов новый источник энергии выдавал напряжение 1,6 вольт в течение как минимум 1,5 недель. Со временем эффективность устройства уменьшается, вероятно из-за постепенной деградации фермента на биокатоде. Разработчики полагают, что срок службы нового биоаккумулятора можно продлить даже при существующих технологиях.
|
Другие интересные новости:
▪ Сетевой адаптер Addonics 10GbE
▪ Первый смартфон под Android 4.0 Ice Cream Sandwich
▪ Микросхема ST25DV02K-W для управления светом и моторами
▪ Спиновая память STT-MRAM
▪ Кроманьонец был умнее нас
Лента новостей науки и техники, новинок электроники
Интересные материалы Бесплатной технической библиотеки:
▪ раздел сайта Радиолюбительские расчеты. Подборка статей
▪ статья Сэмюэл Ричардсон. Знаменитые афоризмы
▪ статья Что такое серебро? Подробный ответ
▪ статья Анютины глазки. Легенды, выращивание, способы применения
▪ статья Электропитание. Блоки питания. Справочник
▪ статья Преобразователь напряжения для светодиодной лампы. Энциклопедия радиоэлектроники и электротехники
Оставьте свой комментарий к этой статье:
Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте

www.diagram.com.ua
2000-2026