Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.09.2009, 20:42   #1
Desha
Форумчанин
 
Аватар для Desha
 
Регистрация: 06.04.2009
Сообщений: 124
По умолчанию Динамические переменные

Объясните пожалуйста динамические переменные. А еще лучше будет если объясните что такое область определения динамических переменных.
Desha вне форума Ответить с цитированием
Старый 06.09.2009, 18:16   #2
Doholyan
Форумчанин
 
Регистрация: 26.04.2009
Сообщений: 270
По умолчанию

динамические переменные....это те которые, в процесе программы меняют свой размер(байт).
Ну кпримеру.....ты зарезервировал(назначил) место под переменную....на диски выделилось место
переменная^ это будет указатель, он весит (точно не помню)около 4байт. он указывает на место ГДЕ будет размещенны ДАННЫЕ.
Doholyan вне форума Ответить с цитированием
Старый 06.09.2009, 20:31   #3
Олвин
Экспериментатор
Форумчанин
 
Аватар для Олвин
 
Регистрация: 16.04.2008
Сообщений: 218
По умолчанию

Судя по всему, их размер равен размеру слова.
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
Олвин вне форума Ответить с цитированием
Старый 06.09.2009, 20:57   #4
Doholyan
Форумчанин
 
Регистрация: 26.04.2009
Сообщений: 270
По умолчанию

это не регламентируеться.....так как не очень важно, не в одной литиратуре не видел сколько точно занимает места указатель..
Doholyan вне форума Ответить с цитированием
Старый 06.09.2009, 21:31   #5
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

указатель занимает 4 байта
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 06.09.2009, 21:39   #6
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Цитата:
Сообщение от Doholyan Посмотреть сообщение
динамические переменные....это те которые, в процесе программы меняют свой размер(байт).
Где вы вычитали такую чушь? Динамические переменные - это переменные, которые создаются в ходе ВЫПОЛНЕНИЯ программы. А то, что вы описали, это просто указатель - вполне таки себе обычная статичная переменная (если конечно исключить динамически создаваемые указатели), которая занимает свои 4 байта уже при запуске программы.

Вкратце говоря, динамические переменные используются, когда на этапе программирования неизвестно, сколько памяти потребуется программе, а также для организации различных структур данных (списков, деревьев).
Чтобы обратиться к динамической переменной, надо во-первых её создать, а во-вторых запомнить её адрес. Делается это с помощью процедуры
Код:
new(p);
где p - это УКАЗАТЕЛЬ, заранее описанный. То есть в p хранится не сама требуемая информация, а лишь адрес ячейки памяти. Чтобы обратиться к этой ячейке, надо писать
Код:
p^
Например
Код:
var p: ^integer;
...
new(p);
p^ := 0;
А вообще пользуйтесь поиском. На форуме это точно есть, а уж в нете тем более
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 07.09.2009, 13:25   #7
Anatole
Форумчанин
 
Аватар для Anatole
 
Регистрация: 07.04.2009
Сообщений: 245
По умолчанию

Хочу несколько дополнить ответGreblin
Вo первых, память для динамической переменной можно отвести не только с помощью процедуры New, но и с помощбю процедуры GetMem.
Во вторых, если в програме используются динамические переменные, то память взатую в системы под эти переменные необходимо освобождать с помощью процедур Dispose или FreeMem.
Всякое безобразие должно быть единообразным. Тогда это называется порядком.
Anatole вне форума Ответить с цитированием
Старый 07.09.2009, 18:29   #8
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Указатель всегда равен машинному слову, то бишь для шестнадцатиразрядных систем указатель равен двум байтам, на 32-х разрядных 4 байтам и т.д...
Динамические переменные это те, которые создаются в оперативной памяти, в процессе выполнения программы. Под статические переменные память выделяется прямо внутри программы. Динамическими переменными являются не только те, которые выделены с помощью New из кучи, но и те, которые создаются в стеке(локальные переменные функций)
netrino вне форума Ответить с цитированием
Старый 07.09.2009, 18:36   #9
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Код:
Хочу несколько дополнить ответGreblin
Вo первых, память для динамической переменной можно отвести не только с помощью процедуры New, но и с помощбю процедуры GetMem.
Во вторых, если в програме используются динамические переменные, то память взатую в системы под эти переменные необходимо освобождать с помощью процедур Dispose или FreeMem.
Или VirtualAlloc
VintProg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические переменные.. NSvirus Паскаль, Turbo Pascal, PascalABC.NET 2 08.06.2009 22:56
Динамические переменные. Delphi svobodys Помощь студентам 0 10.05.2009 16:06
Динамические переменные BIS88 Помощь студентам 3 05.03.2009 17:35
Задача на Динамические переменные)) forz Паскаль, Turbo Pascal, PascalABC.NET 2 20.12.2008 04:50