如何给函数传递数组参数?

yangfan369 2003-11-26 03:53:16
例子如下:
var
A: array of myList; //myList是自定义结构,A在本单元是全程的

...
f1(B:array of myList);
begin
B:=A; //在此不能通过,提示相反的类型,怎么办
...
end;

f2();
begin
showmessage(A[1].name);
end;
end.

...全文
398 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
jhwh 2003-11-27
  • 打赏
  • 举报
回复
这个应该是Pascal的问题。在pascal中,必须把这种情况定义一个类型。
TMyList = array of MyList;

函数定义:
f1( list:TMyList )
var p:TMyList;
begin
p := list;
end;
yangfan369 2003-11-27
  • 打赏
  • 举报
回复
楼上说得也有道理,不过f1函数是个线程类成员函数,准确地说是该类的构造函数,直接为他的成员变量A负值,程序灵活性不大。
fenglaile 2003-11-27
  • 打赏
  • 举报
回复
var
A: array of myList; //myList是自定义结构,A在本单元是全程的

...
f1(B:array of myList);
begin
B:=A; //在此不能通过,提示相反的类型,怎么办
...
end;
--------------
这样定义没有必要吧
在函数里定义b,不要传参数,反正a是全局的,可以直接使用
yangfan369 2003-11-27
  • 打赏
  • 举报
回复
再次谢谢,如果分不够,可以再加。
zhangnan623 2003-11-27
  • 打赏
  • 举报
回复
var
A: array of myList;你定义的是一个不定长的数组,使用前必须初始化数组大小
比如用:setlength()函数
yangfan369 2003-11-26
  • 打赏
  • 举报
回复
能不能声明一个指针,指向需要传入的数组B,以后在本单元中使用此指针呢?
如果能的话,应当怎样做。谢谢各位了。
liyangyao970 2003-11-26
  • 打赏
  • 举报
回复
Setlength
然后再偱环就是了,试试,可以吗?
yangfan369 2003-11-26
  • 打赏
  • 举报
回复
试过了,不行。
rockswj 2003-11-26
  • 打赏
  • 举报
回复
动态数组需要分配空间的。。
SetLength
yangfan369 2003-11-26
  • 打赏
  • 举报
回复
jimh(jimmy) 兄的方法我也想过,不过这样一来可能会消耗系统时间和内存,因为传入的数组可能很大,我想能不能通过A引用B?
yangfan369 2003-11-26
  • 打赏
  • 举报
回复
能不能声明一个指针,指向需要传入的数组B,以后在本单元中使用此指针呢?
如果能的话,应当怎样做。谢谢各位了。
一直在线等待。
jimh 2003-11-26
  • 打赏
  • 举报
回复
自己复制:
SetLength(A,High(B)+1);
for i:=0 to High(B) do
A[i]:=B[i];
yangfan369 2003-11-26
  • 打赏
  • 举报
回复
应当怎样做再能在f2()中使用通过f1传进来的参数?
yangfan369 2003-11-26
  • 打赏
  • 举报
回复
想在本单元中其它函数中使用A,是通过f1(B:array of myList)初始化A的。
rockswj 2003-11-26
  • 打赏
  • 举报
回复
A: array of myList是动态数组
b:是数组参数既开放数组
不是一会事
hongqi162 2003-11-26
  • 打赏
  • 举报
回复
传递参数f1(a[i]);

A:=B; //不太明白你要干什么
yangfan369 2003-11-26
  • 打赏
  • 举报
回复
刚次写错了。
例子如下:
var
A: array of myList; //myList是自定义结构,A在本单元是全程的

...
f1(B:array of myList);
begin
A:=B; //在此不能通过,提示相反的类型,怎么办
...
end;

f2();
begin
showmessage(A[1].name);
end;
end.

5,929

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧