ВУЗ:
Составители:
Рубрика:
94
Поэтому описание указателя должно быть только такого вида:
^<имя
типа данных>
.
New(P) – выделить память, размер которой определяется типом
данных указателя
P. После успешного завершения операции New
значением переменной
P становится начальный адрес выделенной
области памяти.
Выделяемая процедурой New память не инициализируется каким-
либо значением
.
Dispose(P) – освободить память, начальный адрес которой опре-
деляется значением указателя
P. Размер освобождаемой памяти оп-
ределяется типом данных указателя
P.
Пример 1.
Программа сохраняет информацию, отображаемую на дисплее в
текстовом режиме (размер экрана: 80 символов в строке
× 25 строк;
размер памяти для сохранения одного символа: 2байта – всего
4000 байт).
type
ekr =array[1..4000] of byte; {изображение – это массив
из 4000 байт }
var
Ekran : ekr absolute $B800:$0000;
{ Значение переменная Ekran (4000 байт) размещается }
{ в памяти, начиная с адреса $B800:$0000 – }
{ адреса видеопамяти текстового режима }
SaveEkran: ^ekr; {указатель на данные типа ekr}
begin
new(SaveEkran); { получить память для размещения }
{ 4000 байт –здесь будет сохраняться изображение экрана }
SaveEkran^ := Ekran; { сохранение состояния экрана – }
{ запоминание 4000 байт видеопамяти}
…
< операторы изменения состояния экрана>
…
Ekran := SaveEkran ^; { восстановление изображения на экране }
Поэтому описание указателя должно быть только такого вида: ^<имя
типа данных>.
New(P) – выделить память, размер которой определяется типом
данных указателя P. После успешного завершения операции New
значением переменной P становится начальный адрес выделенной
области памяти.
Выделяемая процедурой New память не инициализируется каким-
либо значением.
Dispose(P) – освободить память, начальный адрес которой опре-
деляется значением указателя P. Размер освобождаемой памяти оп-
ределяется типом данных указателя P.
Пример 1.
Программа сохраняет информацию, отображаемую на дисплее в
текстовом режиме (размер экрана: 80 символов в строке × 25 строк;
размер памяти для сохранения одного символа: 2байта – всего
4000 байт).
type
ekr =array[1..4000] of byte; {изображение – это массив
из 4000 байт }
var
Ekran : ekr absolute $B800:$0000;
{ Значение переменная Ekran (4000 байт) размещается }
{ в памяти, начиная с адреса $B800:$0000 – }
{ адреса видеопамяти текстового режима }
SaveEkran: ^ekr; {указатель на данные типа ekr}
begin
new(SaveEkran); { получить память для размещения }
{ 4000 байт –здесь будет сохраняться изображение экрана }
SaveEkran^ := Ekran; { сохранение состояния экрана – }
{ запоминание 4000 байт видеопамяти}
…
< операторы изменения состояния экрана>
…
Ekran := SaveEkran ^; { восстановление изображения на экране }
94
Страницы
- « первая
- ‹ предыдущая
- …
- 93
- 94
- 95
- 96
- 97
- …
- следующая ›
- последняя »
