指针 用 数组 的模式 来使用?

指针 用 数组 的形式 来使用??
RT
在 vc里面 有如下用法:
C/C++ code

int* Test()
{
    int* pi = new int[5];
    pi[0] = 1;
    pi[1] = 2;
    pi[2] = 3;
    pi[3] = 4;
    pi[4] = 5;
    return pi;
}

如上面所示,我动态申请了内存,然后 可以用类似这样的形式 pi[x] 来操作内存的值。


而在Delphi中,如下使用时编译不通过的:
Delphi(Pascal) code

function Test:PInteger;
var pi :PInteger;
begin
  GetMem(pi, sizeof(integer)*5);
  pi[0] := 11;
end;

我记得 怎么怎么 转换一下之后 就可以 类似C++那样使用。但是就是想不起来怎么弄的了...
求指教 求帮助...

ps : 不要告诉我,自己弄一个数组,然后再 CopyMemory(@Dest[0], pi, sizeof(integer)*5); 然后再用 Dest[x] 来操作 ,我不想用这个方式,这个方式多了一个 复制内存的操作。
psps : 我依稀记得是 先 type Tzz = array[0..0] of integer; 然后 Pzz = ^Tzz; 然后再 var pzz1:Pzz; 然后再 怎么怎么转换一下,就可以 用 pzz1[x] 的形式来操作了,但是 弄了半天弄得都不对,求指点 求指教...

------解决方案--------------------
PIntegerArray(pi)[0] := xxxx
------解决方案--------------------
另外一种写法
function Test:PInteger;
var 
pi :PInteger;
arrPi: PIntegerArray absolute pi;
begin
GetMem(pi, sizeof(integer)*5);
arrPi[0] := 11;
end;

------解决方案--------------------
pi^ := 11;
Inc(pi);
pi^ := 22;
...
------解决方案--------------------
动态数组
类型强制转换