.


:




:

































 

 

 

 





, . , . HeapOrg, - FreePtr, HeapPtr. New. :

Var
I,J: ^Integer;
R: ^Real;
Begin
New(I); { I ,}
{ I}
End.

I , HeapPtr, HeapPtr (.. Integer); New(R) - 6 . , , :

I^:= 2;
R^:= 2*Pi;
: R^:= Sqr (R^) + I^ - 17;
: R:= Sqr (R^) + I^ - 17; R .

Dispose:
Dispose(R);
Dispose(I); - , 8 .
Dispose(Ptr) Ptr, , . . , , Nil.

, Nil:

Const
P:^Real = Nil;
........
Begin
If P = Nil then
New (P);
........
Dispose(P);
P:= Nil;
End.

:

1. HeapPtr - Mark.
2. .
3. Release.

Var
P, P1, P2, P3, P4, P5: ^Integer;
Begin
New(P1);
New(P2);
New(P3);
New(P4);
New(P5);
Mark(P);
........
Release (P);
End.

Mark(P) P HeapPtr, .

Release , Dispose, .

GetMem(P, Size) FreeMem(P, Size) - .
P - , Size - .

GetMem 65521 . , , , , !!!

:
Var
i,j: ^Integer;
r: ^Real;
Begin
New (i); { I:= HeapOrg; HeapPtr:= HeapOrg+2 }
j:= i; { J:= HeapOrg }
j^:=2;
Dispose (i); { HeapPtr:= HeapOrg }
New (r); { R:= HeapOrg; HeapPtr:= HeapOrg+6 }
r^:= Pi;
WriteLn (j^);
End.
{ : "8578"}
{ }


. , , , .

, , . :

Program LostReference;
Type
PPerson = ^Person;
Person = Record
....
End;

Procedure GetPerson;
Var
: erson;
Begin
P:= New(PPerson);
End;

Begin
WriteLn(MemAvail);
GetPerson;
Writeln(MemAvail);
End.

New GetPerson Person. . , GetPerson. . . , , , GetPerson, , , Dispose. , GetPerson , "", - - GetPerson. GetPerson .

, , , Turbo Pascal, , , , . , , - (, ).

, , , . :

Var
P: Integer;

Procedure X1;
Var
i: Integer;
Begin
i:= 12345;
P:= @i;
WriteLn(P^); { 12345 }
End;

Procedure X2;
Var
j: Integer;
Begin
j:= 7777;
WriteLn(P^); { 7777, 12345 }
End;

Begin
X1;
X2;
End;

( X1) i. X2 i , . 2 , , i, j, , WriteLn.

, , a , . : , ( ) , - "" , .

 

61. .

. . . .

- ( , , "" ), - .

:

  • -, , .
  • -, . -, . , .
  • -, .

:
< > = FILE OF <>;
< > = ;
< > = FILE;.

< > - ,
FILE, OF, T - (.: , , ),
< > - -, . :

Type
Man=record
Name: string;
LastName: string;
End;
Men=file of Man;
Var
Staff: Men;
Numbers: file of real;
Book: Text;
A_File: File;

:

( FILE OF...),
( ),
( FILE).

- : INPUT - OUTPUT - . . - , .

, ( ). , : .

ASSIGN:
ASSIGN(< .. >, < .. >);
< .. > - ( , );
< .. > - , .

:
Assign(Book,PascalLecture.txt);

, , ASSIGN(f, ), INPUT UU.





:


: 2016-03-25; !; : 660 |


:

:

: , .
==> ...

1535 - | 1504 -


© 2015-2024 lektsii.org - -

: 0.017 .