type arr=array[1..10] of integer; ptr=^arr; var p:ptr; begin New(p); myprocedure(p); showmessage(inttostr(p^[1])); end;procedure myprocedure(var q:ptr); begin q^[1]:=123; end;
那如果本身数组的大小是在过程的参数中指定的,这种情况怎么办。 type arr=array[1..10] of integer; ptr=^arr; 该怎么书写. 相应的类C/C++语言代码为://HuffTree类型为指向结构HTNode的指针 void HuffCoding(HuffTree &HT,int n) { HT=(HuffTree)malloc((n+1)*sizeof(HTNode)); HT[1]={0,0,0,0}; }
arr=array of integer;Use SetLength
如下 var a: array of string ; //动态数组 i: integer; begin setlength(a,10); //分配10个空间 for i := 0 to length(a)-1 do begin a[i] := inttostr(i); end; freemem(@a); end;
a: array [0..10] of char;
i: ^integer;
begin
i := @a[0] ;
end;
例如:
procedure myprocedure(指向数组的指针);
该怎么写这个过程的函数参数?
一定要那样访问吗?
for i := 0 to length(a) -1 do
begin
a[i]这样不挺好吗
end;
arr=array[1..10] of integer;
ptr=^arr;
var
p:ptr;
begin
New(p);
myprocedure(p);
showmessage(inttostr(p^[1]));
end;procedure myprocedure(var q:ptr);
begin
q^[1]:=123;
end;
type
arr=array[1..10] of integer;
ptr=^arr;
该怎么书写.
相应的类C/C++语言代码为://HuffTree类型为指向结构HTNode的指针
void HuffCoding(HuffTree &HT,int n)
{
HT=(HuffTree)malloc((n+1)*sizeof(HTNode));
HT[1]={0,0,0,0};
}
var
a: array of string ; //动态数组
i: integer;
begin
setlength(a,10); //分配10个空间
for i := 0 to length(a)-1 do
begin
a[i] := inttostr(i);
end;
freemem(@a);
end;
例如:
1:
type
pa:^ta;
ta:array[0..9] of Integer;
var
pa1:^ta;//
pa2:pa;// 效果相同
begin
2:
type
ta:array[0..9] of Integer;
var
a:ta;
pa:PInteger;
begin
pa:=@a[0];
inc(pa);//访问下一个元素