![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 07.11.2008
Сообщений: 23
|
![]()
Как обозначаются операторы New и Dispose из данной программы в блоксхеме??
Код:
|
![]() |
![]() |
![]() |
#2 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
![]()
Советую посмотреть эту тему.
Там много интересного. Однако, отвечая на вопрос: По-сути, символ ^ для компилятора - он дает ему знать, что работать он будет ни с чем-то "вещественным" (как мы привыкли), а с указателем. У вас определен тип ^Integer, таким образом мы говорим компилятору, что он будет иметь дело с указателями на память, в которой будут храниться данные типа Integer. New и Dispose работают с указателями, поэтому при использовании переменной нам не нужно указывать символ содержимого. Т.е. New(a) выделяет память под хранение типа Integer и возвращает (присваивает) нам адрес, в котором будет записано значение. Dispose(a) в свою очередь освобождает зарезервированное в памяти место. Иное - вычисления с переменными, помещеными в память. Если мы обратимся к ним на прямую (a:=6), то получим ошибку (не всегда, но в большинстве случаев =)), т.к. память занята каким-то процессом. Поэтому нам нужно записывать в значение по адресу, о чем и говорит знак ^ за переменной. То же самое при чтении таких переменных. Надеюсь, все понятно ![]()
Познавая других, мы познаем себя.
С'est la vie... Последний раз редактировалось SuperVisor; 08.12.2008 в 21:18. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Почему Dispose не освобождает память? | DeLorean | Общие вопросы Delphi | 4 | 08.04.2008 00:17 |
Как обозначается корневой каталог программы? | BeeX | Свободное общение | 1 | 25.11.2007 20:25 |