- Введение в информатику (Информатика. Информация. Представление и обработка информации. Системы счисления. Представление чисел в ЭВМ. Формализованное понятие алгоритма)
- Язык Pascal (Введение в язык Pascal. Стандартные процедуры и функции. Операторы языка Pascal)
- Процедуры и функции (Понятие вспомогательного алгоритма. Процедуры в Pascal. Функции в Pascal. Опережающие описания и подключение подпрограмм. Директива)
- Подпрограммы (Параметры подпрограмм. Типы параметров подпрограмм. Строковый тип в Pascal. Процедуры и функции для переменных строкового типа. Записи. Множества)
- Файлы (Файлы. Операции с файлами. Модули. Виды модулей)
- Динамическая память (Ссылочный тип данных. Динамическая память. Динамические переменные. Работа с динамической памятью. Нетипизированные указатели)
- Абстрактные структуры данных (Абстрактные структуры данных. Стеки. Очереди)
- Древовидные структуры данных (Древовидные структуры данных. Операции над деревьями. Примеры реализации операций)
- Графы (Понятие графа. Способы представления графа. Представление графа списком инцидентности. Алгоритм обхода графа в глубину. Представление графа списком списков. Алгоритм обхода графа в ширину)
- Объектный тип данных (Объектный тип в Pascal. Понятие объекта, его описание и использование. Наследование. Создание экземпляров объектов. Компоненты и область действия)
- Методы (Методы. Конструкторы и деструкторы. Деструкторы. Виртуальные методы. Поля данных объекта и формальные параметры метода)
- Совместимость типов объектов (Инкапсуляция. Расширяющиеся объекты. Совместимость типов объектов)
- Ассемблер (Об ассемблере. Программная модель микропроцессора. Пользовательские регистры. Регистры общего назначения. Сегментные регистры. Регистры состояния и управления)
- Регистры (Системные регистры микропроцессора. Регистры управления. Регистры системных адресов. Регистры отладки)
- Программы на Ассемблере (Структура программы на Ассемблере. Синтаксис Ассемблера. Операторы сравнения. Операторы и их приоритет. Упрощенные директивы определения сегмента. Идентификаторы, создаваемые директивой MODEL. Модели памяти. Модификаторы модели памяти)
- Структуры команд на Ассемблере (Структура машинной команды. Способы задания операндов команды. Способы адресации)
- Команды (Команды пересылки данных. Арифметические команды)
- Команды передачи управления (Логические команды. Таблица истинности для логического отрицания. Таблица истинности для логического включающего ИЛИ. Таблица истинности для логического И. Таблица истинности для логического исключающего ИЛИ. Значение аббревиатур в названии команды jcc. Перечень команд условного перехода для команды. Команды условного перехода и флаги)
ЛЕКЦИЯ № 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 совместимы со всеми другими типами указателей.
Автор: Цветкова А.В.
<< Назад: Динамическая память (Ссылочный тип данных. Динамическая память. Динамические переменные. Работа с динамической памятью. Нетипизированные указатели)
>> Вперед: Древовидные структуры данных (Древовидные структуры данных. Операции над деревьями. Примеры реализации операций)
Рекомендуем интересные статьи раздела Конспекты лекций, шпаргалки:
▪ Менеджмент. Конспект лекций
▪ Основы бизнеса. Шпаргалка
▪ Урология. Шпаргалка
Смотрите другие статьи раздела Конспекты лекций, шпаргалки.
Читайте и пишите полезные комментарии к этой статье.
<< Назад
Последние новости науки и техники, новинки электроники:
Хорошо управляемые луга могут компенсировать выбросы от скота
15.02.2026
Животноводство, особенно разведение крупного рогатого скота, часто обвиняют в значительном вкладе в глобальное потепление из-за мощного парникового газа - метана, который выделяется при пищеварении у жвачных животных. Это вызывает острые политические споры и призывы к сокращению потребления мяса. Однако ученые напоминают, что полная картина климатического воздействия отрасли не ограничивается только выбросами от животных: огромную роль играет окружающая экосистема - пастбища, почва и растительность, которые способны активно поглощать углекислый газ из атмосферы.
Исследователи из Университета Небраски-Линкольна решили глубже изучить этот баланс. Группа под руководством профессора Галена Эриксона сосредоточилась на том, как правильно организованные пастбища накапливают углерод в растениях и грунте благодаря естественным процессам, стимулируемым выпасом скота. Ученые подчеркивают, что при достаточном уровне осадков и грамотном управлении такие луга превращаются в мощные природные погло ...>>
NASA тестирует инновационную технологию крыла
15.02.2026
Коммерческая авиация ежегодно расходует колоссальные объемы керосина, что сказывается не только на бюджете авиакомпаний, но и на состоянии окружающей среды. В 2024 году глобальные затраты на авиационное топливо достигли 291 миллиарда долларов, и эта сумма продолжает расти. Чтобы справиться с этими вызовами, NASA активно работает над технологиями, способными заметно повысить аэродинамическую эффективность самолетов. Одним из самых перспективных направлений стало создание специальной конструкции крыла, которая максимизирует естественный ламинарный поток воздуха и минимизирует сопротивление.
В январе 2026 года специалисты NASA Armstrong Flight Research Center успешно провели важный этап наземных испытаний концепции Crossflow Attenuated Natural Laminar Flow (CATNLF). Для эксперимента под фюзеляж исследовательского самолета F-15B закрепили вертикально ориентированную масштабную модель высотой около 0,9 м (3 фута), напоминающую узкий киль. Такая компоновка позволила подвергнуть прототип р ...>>
Забота о внуках очень полезна для здоровья мозга
14.02.2026
Общение между поколениями приносит радость всей семье, но мало кто задумывается, насколько активно бабушки и дедушки, заботящиеся о внуках, поддерживают свою умственную форму. Регулярное взаимодействие с детьми стимулирует мозг пожилых людей, помогая сохранять память, скорость мышления и общую когнитивную активность.
Новые научные данные подтверждают, что такая добровольная помощь не только важна для общества, но и может замедлять возрастные изменения в мозге.
Исследователи из Тилбургского университета в Нидерландах провели анализ, чтобы понять, приносит ли уход за внуками реальную пользу здоровью пожилых людей. Ведущий автор работы Флавия Черечес отметила, что многие бабушки и дедушки регулярно присматривают за детьми, и оставался открытым вопрос, насколько это положительно сказывается на их собственном благополучии, особенно в плане когнитивных функций.
Ученые поставили цель выяснить, способен ли регулярный уход за внуками замедлить снижение памяти и других умственных способ ...>>
Случайная новость из Архива Удары астероидов по Земле
19.10.2011
Наша планета время от времени подвергается ударам астероидов. Какова на протяжении миллионов лет тенденция таких катастроф, становятся ли они чаще или реже?
Проанализировав данные о возрасте кратеров, возникших при падении астероидов за последние 250 миллионов лет, сотрудники Астрономического института Общества Макса Планка (Германия) пришли к выводу, что за это время частота столкновений астероидов с Землей постоянно возрастала. Правда, причиной такой статистики может быть эрозия.
Многие из самых древних кратеров успели за миллионы лет сгладиться, а более свежие пока хорошо заметны, потому их больше. С другой стороны, по некоторым данным, и на Луне, где эрозии нет, молодых кратеров больше, чем старых. Вопрос остается открытым.
|
Другие интересные новости:
▪ Сушилки для рук распространяют бактерии
▪ Создан самый маленький транзистор
▪ Что коту здорово, то комару смерть
▪ Растения вырабатывают бензин
▪ Фотоаппарат в очках
Лента новостей науки и техники, новинок электроники
Интересные материалы Бесплатной технической библиотеки:
▪ раздел сайта Бытовая электроника. Подборка статей
▪ статья Жа Жа Габор. Знаменитые афоризмы
▪ статья Какая война сделала Рим союзником Карфагена? Подробный ответ
▪ статья Заведующий кафедрой. Должностная инструкция
▪ статья Беглый светодиодный огонь (вариант 1). Энциклопедия радиоэлектроники и электротехники
▪ статья Квадраты из двух частей. Секрет фокуса
Оставьте свой комментарий к этой статье:
Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте

www.diagram.com.ua
2000-2026