跪求各位大侠,如何在函数中把动态二维数组作为参数进行传递(200分)

  • 主题发起人 主题发起人 zn709
  • 开始时间 开始时间
Z

zn709

Unregistered / Unconfirmed
GUEST, unregistred user!
跪求各位大侠,如何在函数中把动态二维数组作为参数进行传递,我想知道是否可以这样传递,不要其他的替代办法。
 
什么样的动态数组啊?
是这样吗?
function Aarray(A:array[0..1,1..0]of integer):Boolean;
 
问:我用procedure Proc(var A:array[1..10] of integer);怎么都不能编译通过,难道Delphi不能传递数组作为参数吗?

答:必须先用Type定义一下即可:
type
TProcArray=array[1..10] of integer;

procedure Proc(var A:TProcArray);
这样就没有问题了,而且对于动态数组也可以用上面的方法!使用动态数组的时候,有一个问题是如何遍历每一个数据项?采用类似的代码即可:
procedure Proc(var A:TProcArray);
var
i:integer;
begin
....
for i:=Low(A) to High(A) do
/// A就是每一个数据项
....
end;
 
是这样的动态数组
tmp:array of array of string
 
procedure TForm1.Button1Click(Sender: TObject);
type TMyArray=array of array of String;
procedure ADD(var K:TMyArray);
var m,n:Integer;
begin
for m:=0 to 9 do
for n:=0 to 4
do
K[m,n]:=K[m,n]+'ADD...';
end;
var T:TMyArray;
I,J:Integer;
begin
SetLength(T,10);
for I:=0 to 9 do
begin
SetLength(T,5);
for J:=0 to 4 do T[I,J]:=IntToStr(I*10+J);
end;
ADD(T);
ShowMessage(T[2,2]);
end;
 
type arrays=array of array of integer;

procedure(aa:arrays);

只能这样传,没有其它办法。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
916
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部