fork download
  1. program test;
  2.  
  3. type Ptr = ^Integer;
  4. Foo = record a, b, c, d : Byte end;
  5. PFoo = ^Foo;
  6.  
  7. var x, y : Ptr;
  8. z : PFoo;
  9.  
  10. procedure PrintXY(n : Integer);
  11. begin
  12. WriteLn(n:4, '. x = ', x^:6, ', y = ', y^:6)
  13. end;
  14.  
  15. procedure PrintZ(n : Integer);
  16. begin
  17. WriteLn(n:4, '. z = {', z^.a:6, ',', z^.b:6, ',', z^.c:6, ',', z^.d:6, '}');
  18. end;
  19.  
  20. begin
  21. x := New(Ptr); x^ := 0;
  22. y := x;
  23. z := New(PFoo); z^.a := 0; z^.b := 0; z^.c := 0; z^.d := 0;
  24. PrintXY(1);
  25. Inc(x, 1);
  26. PrintXY(2);
  27. x^ := 123;
  28. PrintXY(3);
  29. x := @z^;
  30. PrintXY(4); PrintZ(4);
  31. x^ := 123456;
  32. PrintXY(5); PrintZ(5);
  33. Dispose(y);
  34. Dispose(z);
  35. end.
Success #stdin #stdout 0s 276KB
stdin
stdout
   1. x =      0, y =      0
   2. x = -18551, y =      0
   3. x =    123, y =      0
   4. x =      0, y =      0
   4. z = {     0,     0,     0,     0}
   5. x =  -7616, y =      0
   5. z = {    64,   226,     0,     0}