mem.mod
来自「<B>Digital的Unix操作系统VAX 4.2源码</B>」· MOD 代码 · 共 52 行
MOD
52 行
(*#@(#)mem.mod 4.1 Ultrix 7/17/90 *)module testmem;from system import tsize, adr;from memory import allocate, deallocate;from io import writef, output;const MAXSIZE = 1000; ACTUALSIZE = 100;type ArrayPtr = pointer to array [0..MAXSIZE] of integer;var ap1, ap2 : ArrayPtr; api1, api2 : pointer @nocheck to integer; i : cardinal;begin allocate(ap1,ACTUALSIZE*tsize(integer)); api1 := adr(ap1^) - 4; for i := 0 to ACTUALSIZE do ap1^[i] := i; end; writef(output,"ap1=%x api1^=%x ap1^[1]=%x\n",integer(ap1),api1^,ap1^[1]); allocate(ap2,ACTUALSIZE*tsize(integer)); api2 := adr(ap2^) - 4; for i := 0 to ACTUALSIZE do ap2^[i] := i; end; writef(output,"ap2=%x api2^=%x ap2^[1]=%x\n",integer(ap2),api2^,ap2^[1]); deallocate(ap2,ACTUALSIZE*tsize(integer)); deallocate(ap1,ACTUALSIZE*tsize(integer)); writef(output,"ap1=%x\n",integer(ap1)); writef(output,"ap2=%x\n",integer(ap2)); new(ap1); api1 := adr(ap1^) - 4; for i := 0 to MAXSIZE do ap1^[i] := i; end; writef(output,"ap1=%x api1^=%x ap1^[1]=%x\n",integer(ap1),api1^,ap1^[1]); new(ap2); api2 := adr(ap2^) - 4; for i := 0 to MAXSIZE do ap2^[i] := i; end; writef(output,"ap2=%x api2^=%x ap2^[1]=%x\n",integer(ap2),api2^,ap2^[1]); dispose(ap2); dispose(ap1); writef(output,"ap1=%x\n",integer(ap1)); writef(output,"ap2=%x\n",integer(ap2));end testmem.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?