delphi 二维数组参数问题

typetarr=arrayofarrayofstring;//定义一个二维数组类型procedurezuhe(ar:tarr;k:integer);procedurez... type
tarr=array of array of string; //定义一个二维数组类型
procedure zuhe(ar:tarr;k:integer);

procedure zuhe(ar:tarr;k:integer);
begin

……
end;

procedure TForm1.Button1Click(Sender: TObject);
var
a:tarr; //定义a为动态二维数组
begin

setlength(a,3,1000); //给二维数组a确定大小

……二维数组赋值(省)……

zuhe(a,0); //调用zuhe()函数

……
end;

问题是,在点击Button1按钮后,调用zuhe()函数,但是一运行,就在zuhe(a,0); 这一行出问题。而且,经过验证,二维数组a没有成功传递过去。
请教高手,是不是函数参数有问题??谢谢。。。
展开
 我来答
浮生梦魇WQR
2014-09-03 · TA获得超过145个赞
知道答主
回答量:134
采纳率:100%
帮助的人:50.6万
展开全部
SetLength(data.StrArray,2,2);

你这是什么写法?Delphi没有这个函数,
Delphi的SetLength只有两个参数:变量,长度;

你这个动态2维数组不能这样初始化

setLength(data.StrArray, 2);
for i:= 0 to High(data.StrArray) do begin
SetLength(data.StrArray[i], 2);
end;
追问
那为什么我对二维数组a赋值之后,用下面的代码

for b1:=0 to 2 do
for b2:=0 to 5 do
showmessage(a[b1][b2]);

可以把这个二维数组的字读出来??
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
火篱笆
2014-09-03 · TA获得超过1795个赞
知道大有可为答主
回答量:1797
采纳率:76%
帮助的人:835万
展开全部
第二行动态数组定义错了,应该是 tarr:array of array of string;
追问

改后就显示错误。

追答
type
tarr:array of array of string;
放到class外面定义
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式