Динамическая переменная (программирование)

Динами́ческая переме́нная — переменная в программе, место в оперативной памяти под которую выделяется во время выполнения программы. По сути, она является участком памяти, выделенным системой программе для конкретных целей во время работы программы. Этим она отличается от глобальной статической переменной - участка памяти, выделенного системой программе для конкретных целей перед началом работы программы. Динамическая переменная — один из классов памяти переменной.

Так как динамическая переменная создаётся во время выполнения программы, во многих языках программирования у неё нет собственного идентификатора. Работа с динамической переменной ведётся косвенно, через указатель. Создание такой переменной заключается в выделении участка памяти с помощью специальной функции. Эта функция возвращает адрес в памяти, который назначается указателю. Процесс доступа к памяти через указатель называется разыменованием. После окончания работы с динамической переменной выделенную под неё память необходимо освободить — для этого тоже есть специальная функция.

Пример создания динамической переменной с помощью указателя в языке Pascal:

type tMyArray =  array [1..3] of real;var pMyArray = ^tMyArray;begin  new (pMyArray);    {выделение памяти под массив из трех чисел}  pMyArray^[1] := 1.23456;  pMyArray^[2] := 2.71828;  pMyArray^[3] := 3.14159;  ......

В языках программирования относительно низкого уровня указатели используются явно, что чревато серьёзными ошибками. В языках более высокого уровня динамические типы данных могут быть оформлены как динамические массивы.

Пример создания динамического массива в языке Delphi:

var MyArray = array of real;begin  SetLength(MyArray,3);   {выделение памяти под массив из трех чисел}  MyArray[0] := 1.23456;  {в Delphi динамические массивы нумеруются в си-образном стиле: от 0 до n-1}  MyArray[1] := 2.71828;  MyArray[2] := 3.14159;  ......

В языках высокого уровня динамические типы данных могут быть оформлены и другим способом - как классы, а процессы выделения и освобождения памяти описаны в конструкторе и деструкторе каждого класса.

🔥 Top keywords: Заглавная страницаЯндексДуров, Павел ВалерьевичСлужебная:ПоискYouTubeЛунин, Андрей АлексеевичПодносова, Ирина ЛеонидовнаВКонтактеФоллаут (телесериал)WildberriesTelegramРеал Мадрид (футбольный клуб)Богуславская, Зоя БорисовнаДуров, Валерий СемёновичРоссияXVideosСписок умерших в 2024 годуЧикатило, Андрей РомановичFallout (серия игр)Список игроков НХЛ, забросивших 500 и более шайбПопков, Михаил ВикторовичOzon17 апреляИльин, Иван АлександровичMail.ruСёгун (мини-сериал, 2024)Слово пацана. Кровь на асфальтеПутин, Владимир ВладимировичЛига чемпионов УЕФАГагарина, Елена ЮрьевнаБишимбаев, Куандык ВалихановичЛига чемпионов УЕФА 2023/2024Турнир претендентов по шахматам 2024Манчестер СитиMGM-140 ATACMSРоссийский миротворческий контингент в Нагорном КарабахеЗагоризонтный радиолокаторПинапВодительское удостоверение в Российской Федерации