ВУЗ:
Составители:
Рубрика:
243
Замечание:
Работа с динамической памятью является одной из сложнейших тем
в программировании. Поэтому, если Вы разберетесь в ней и научитесь на
практике использовать динамическую память, то этим Вы сделаете весьма
большой шаг к профессиональному уровню программирования.
В заключении описания работы с динамической памятью перечислим
типичные ошибки:
1) Потеря динамической памяти. Может произойти в том случае,
когда память была выделена, но не была освобождена.
var
P:Pointer;
begin
GetMem(P,100); {выделили 100 байт}
GetMem(P,200); {выделили еще 200 байт}
FreeMem(P,200); {освободили 200 байт – 100 байт освободить уже не
удастся... – ОШИБКА}
end.
2) Многократное освобождение одной и той же динамической памяти.
var
pw:PWorker;
begin
New(pw); {выделили память под переменную типа TWorker}
Dispose(pw); {освободили память из-под переменной типа TWorker}
Dispose(pw); {попытались еще раз освободить эту же память}
end.
3) Память не выделялась, но освобождается.
var
PL:^LongInt;
L:LongInt;
begin
PL:=@L; {PL указывает на переменную L}
L:=100000;
writeln(PL^); {выводится число 100000}
Dispose(PL); {пытаемся освободить память, которую не выделяли –
ОШИБКА}
end.
Страницы
- « первая
- ‹ предыдущая
- …
- 241
- 242
- 243
- 244
- 245
- …
- следующая ›
- последняя »