首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2012-09-21 
指针 用 数组 的形式 来使用??RT在 vc里面 有如下用法:C/C++ codeint* Test(){int* pi new int[5]pi[0]

指针 用 数组 的形式 来使用??
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;
...
[解决办法]
动态数组
类型强制转换

热点排行