怎样定义一个大小不定的数组?(50分)

  • 主题发起人 主题发起人 Cando
  • 开始时间 开始时间
利用动态数组!

i : array of integer;

声明了i为一个动态整型数组。
 
var
A1 : array of integer;
A2 : array of array of integer;
begin
SetLength(A1, 10); //设置数组长度
SetLength(A2, 10, 10);
//以下可以引用数组了

end.
 
array of integer;
 
var
A: array of integer
begin
SetLength(A, nLength);
.......
A := nil;
end;
 
那么怎样定义一个函数的返回参数为一个不定大小的数组呢?如下定义出错:
Function GetCmdPara(CmdLine:String):Array of String;
 
不能直接返回动态数组,必须事先将其声明为一个普通类型:

type
SA=array of String; //Here!
function ReturnIA:SA;
begin
SetLength(Result,2); //Here
Result[0]:='1';
Result[1]:='Hello!';
end;
procedure TForm1.Button1Click(Sender: TObject);
var
a:SA;
begin
a:=ReturnIA;
Caption:=a[0]+' '+a[1]; //OK!
end;
 
为什么不用TStrings呢

先定义一个类型
type
TA = array of string;

function x : TA;
 
多人接受答案了。
 
后退
顶部