12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- MODULE m;
- TYPE
- T = RECORD p: POINTER TO T; i: INTEGER END;
- PT = POINTER TO T;
- T2 = POINTER TO RECORD p: POINTER TO T END;
- PForward = POINTER TO Forward;
- Forward = RECORD END;
- VAR
- p: POINTER TO T;
- r: T;
- r2: T2;
- pf: PForward;
- pAnonymous: POINTER TO RECORD END;
- PROCEDURE passByRef(VAR p: PT);
- BEGIN
- p.i := 0;
- passByRef(p);
- passByRef(p.p);
- END passByRef;
- PROCEDURE derefAndAssign();
- BEGIN
- NEW(p);
- p^ := r;
- END derefAndAssign;
- BEGIN
- NEW(r.p);
- NEW(r.p.p);
- r.p.i := 123;
- NEW(r2);
- NEW(r2.p);
- NEW(pf);
- NEW(pAnonymous);
- passByRef(p);
- END m.
|