Menu Home

Бесплатная техническая библиотека для любителей и профессионалов Бесплатная техническая библиотека


Информатика и информационные технологии. Абстрактные структуры данных (конспект лекций)

Конспекты лекций, шпаргалки

Справочник / Конспекты лекций, шпаргалки

Комментарии к статье Комментарии к статье

Оглавление (развернуть)

ЛЕКЦИЯ № 7. Динамическая память

1. Ссылочный тип данных. Динамическая память. Динамические переменные

Статической переменной (статически размещенной) называется описанная явным образом в программе переменная, обращение к ней осуществляется по имени. Место в памяти для размещения статических переменных определяется при компиляции программы. В отличие от таких статических переменных в программах, написанных на языке Pascal, могут быть созданы динамические переменные. Основное свойство динамических переменных заключается в том, что они создаются, и память для них выделяется во время выполнения программы.

Размещаются динамические переменные в динамической области памяти (heap-области). Динамическая переменная не указывается явно в описаниях переменных, и к ней нельзя обратиться по имени. Доступ к таким переменным осуществляется с помощью указателей и ссылок.

Ссылочный тип (указатель) определяет множество значений, которые указывают на динамические переменные определенного типа, называемого базовым типом. Переменная ссылочного типа содержит адрес динамической переменной в памяти. Если базовый тип является еще не описанным идентификатором, то он должен быть описан в той же самой части описания типов, что и тип-указатель.

Зарезервированное слово nil обозначает константу со значением указателя, которая ни на что не указывает.

Приведем пример описания динамических переменных.

var p1, p2 : ^real;

p3, p4 : ^integer;

...

2. Работа с динамической памятью. Нетипизированные указатели

Процедуры и функции работы с динамической памятью

1. Процедура New(var p: Pointer).

Выделяет место в динамической области памяти для размещения динамической переменной рЛ, и ее адрес присваивает указателю р.

2. Процедура Dispose(varp: Pointer).

Освобождает участок памяти, выделенный для размещения динамической переменной процедурой New, и значение указателя р становится неопределенным.

3. Процедура GetMem(varp: Pointer; size: Word).

Выделяет участок памяти в heap-области, присваивает адрес его начала указателю р, размер участка в байтах задается параметром size.

4. Процедура FreeMem(var p: Pointer; size: Word).

Освобождает участок памяти, адрес начала которого определен указателем р, а размер - параметром size. Значение указателя р становится неопределенным.

5. Процедура Mark(var p: Pointer)

Записывает в указатель р адрес начала участка свободной динамической памяти на момент ее вызова.

6. Процедура Release(var p: Pointer)

Освобождает участок динамической памяти, начиная с адреса, записанного в указатель р процедурой Mark, т. е. очищает ту динамическую память, которая была занята после вызова процедуры Mark.

7. Функция MaxAvaikLongint

Возвращает длину в байтах самого длинного свободного участка динамической памяти.

8. Функция MemAvaikLongint

Возвращает полный объем свободной динамической памяти в байтах.

9. Вспомогательная функция SizeOf(X):Word

Возвращает объем в байтах, занимаемый X, причем X может быть либо именем переменной любого типа, либо именем типа.

Встроенный тип Pointer обозначает нетипизированный указатель, т. е. указатель, который не указывает ни на какой определенный тип. Переменные типа Pointer могут быть разыменованы: указание символа ^ после такой переменной вызывает появление ошибки.

Как и значение, обозначаемое словом nil, значения типа Pointer совместимы со всеми другими типами указателей.

Автор: Цветкова А.В.

<< Назад: Динамическая память (Ссылочный тип данных. Динамическая память. Динамические переменные. Работа с динамической памятью. Нетипизированные указатели)

>> Вперед: Древовидные структуры данных (Древовидные структуры данных. Операции над деревьями. Примеры реализации операций)

Рекомендуем интересные статьи раздела Конспекты лекций, шпаргалки:

Этика. Конспект лекций

Реклама. Шпаргалка

Возрастная психология. Конспект лекций

Смотрите другие статьи раздела Конспекты лекций, шпаргалки.

Читайте и пишите полезные комментарии к этой статье.

<< Назад

Последние новости науки и техники, новинки электроники:

Лабораторная модель прогнозирования землетрясений 30.11.2025

Предсказание землетрясений остается одной из самых сложных задач геофизики. Несмотря на развитие сейсмологии, ученые все еще не могут точно определить момент начала разрушительного движения разломов. Недавние эксперименты американских исследователей открывают новые горизонты: впервые удалось наблюдать микроскопические изменения в контактной зоне разломов, которые предшествуют землетрясению. Группа под руководством Сильвена Барбота обнаружила, что "реальная площадь контакта" - участки, где поверхности разлома действительно соприкасаются - изменяется за миллисекунды до высвобождения накопленной энергии. "Мы открыли окно в сердце механики землетрясений", - отмечает Барбот. Эти изменения позволяют фиксировать этапы зарождения сейсмического события еще до появления традиционных сейсмических волн. Для наблюдений ученые использовали прозрачные акриловые материалы, через которые можно было отслеживать световые изменения в зоне контакта. В ходе искусственного моделирования примерно 30% ко ...>>

Музыка как естественный анальгетик 30.11.2025

Ученые все активнее исследуют немедикаментозные способы облегчения боли. Одним из перспективных направлений становится использование музыки, которая способна воздействовать на эмоциональное состояние и когнитивное восприятие боли. Новое исследование международной группы специалистов демонстрирует, что даже кратковременное прослушивание любимых композиций может значительно снижать болевые ощущения у пациентов с острой болью в спине. В эксперименте участвовали пациенты, обратившиеся за помощью в отделение неотложной помощи с выраженной болью в спине. Им предлагалось на протяжении десяти минут слушать свои любимые музыкальные треки. Уже после этой короткой сессии врачи фиксировали заметное уменьшение интенсивности боли как в состоянии покоя, так и при движениях. Авторы исследования подчеркивают, что музыка не устраняет саму причину боли. Тем не менее, она воздействует на эмоциональный фон пациента, снижает уровень тревожности и отвлекает внимание, что в сумме приводит к субъективном ...>>

Алкоголь может привести к слобоумию 29.11.2025

Проблема влияния алкоголя на стареющий мозг давно вызывает интерес как у врачей, так и у исследователей когнитивного старения. В последние годы стало очевидно, что границы "безопасного" употребления спиртного размываются, и новое крупное исследование, проведенное международной группой ученых, вновь указывает на это. Работы Оксфордского университета, выполненные совместно с исследователями из Йельского и Кембриджского университетов, показывают: даже небольшие дозы алкоголя способны ускорять когнитивный спад. Команда проанализировала данные более чем 500 тысяч участников из британского биобанка и американской Программы миллионов ветеранов. Дополнительно был выполнен метаанализ сорока пяти исследований, в общей сложности включавших сведения о 2,4 миллиона человек. Такой масштаб позволил оценить не только прямую связь между употреблением спиртного и развитием деменции, но и влияние генетической предрасположенности. Один из наиболее тревожных результатов касается людей с повышенным ге ...>>

Случайная новость из Архива

Робот поможет одеться 24.07.2021

Ученые из Массачусетского технологического института (MIT) представили новый алгоритм, который позволяет роботу одевать людей, не мешая им. Устройство можно использовать как помощника для маломобильных людей. Исследователи объяснили, что у роботов есть большой потенциал для помощи людям с ограниченной мобильностью. Но это сложная задача, которая требует от устройств ловкости, безопасности пользователя и скорости. Теперь ученые из MIT разработали алгоритм, который обеспечивает этот баланс.

Человеку относительно легко помочь другому одеться, поскольку мы инстинктивно знаем, где и как держать предмет одежды, как человек может согнуть руку, как на движения отреагирует ткань и так далее. Однако роботов надо учить всему этому с нуля.

Команда MIT под руководством Шена Ли разработала алгоритм, который по-новому определяет безопасность движения роботов, позволяя движения, предотвращающие столкновения с ним. Это позволяет роботу без вреда для здоровья вступить в контакт с человеком, чтобы выполнить свою задачу, при условии, что воздействие на человека будет незначительным.

Система по одеванию человека работала, даже если он в этот момент занимался другими делами - например, проверял телефон. Это достигается за счет объединения нескольких моделей для различных ситуаций, а не за счет одной модели, как раньше.

"Наш многогранный подход объединяет теорию множеств, ограничения безопасности, учитывающие интересы человека, предсказание движений человека и управление связью для безопасного взаимодействия человека и робота", - отметил Закори Эриксон из Университета Карнеги-Меллон.

Другие интересные новости:

▪ Монитор NEC MultiSync PA302W

▪ Зaмужниe жeнщины выглядят мoлoжe

▪ Водородный кроссовер Audi H-Tron Quattro

▪ Как мозг запоминает лица

▪ Экзоскелет для спецназа

Лента новостей науки и техники, новинок электроники

 

Интересные материалы Бесплатной технической библиотеки:

▪ раздел сайта Электрику. ПУЭ. Подборка статей

▪ статья Уильям Сомерсет Моэм. Знаменитые афоризмы

▪ Что представляли собой образование и культура в раннее Средневековье? Подробный ответ

▪ статья Специалист конференц-сервиса. Должностная инструкция

▪ статья Акустическое оформление широкополосных головок. Энциклопедия радиоэлектроники и электротехники

▪ статья Электрооборудование кранов. Общие требования. Энциклопедия радиоэлектроники и электротехники

Оставьте свой комментарий к этой статье:

Имя:


E-mail (не обязательно):


Комментарий:





Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте

www.diagram.com.ua

www.diagram.com.ua
2000-2025