如何定义一个动态二维数组?(50分)

  • 主题发起人 主题发起人 chons
  • 开始时间 开始时间
C

chons

Unregistered / Unconfirmed
GUEST, unregistred user!
我想定义一个动态二维数组,类型为整型
我是这样定义的 a:array of array of integer;
setlength(a,n);//n是一个整数;
可是当我赋值时老是运行出错,不知什么原因,望大虾这个
 
举个例子,定义动态二维数组,在程序中把它定义成10*10的
type
a=array of integer;
var
b:array of a;
begin
setlength(b,10);
for i:=0 to 9 do
setlength(b,10);
end;
 
动态数组只能是一维数组吧
 
动态尔维数组数组中.只有一维是动态的,另一维必须是静态的!
 
要Setlength两次,第一次设行,第二次设列如下
var a: array of array of Integer;
SetLength(a,10);
SetLength(a[2], 5);

这样你才能访问a[2][0]到a[2][4]
 
要Setlength两次,第一次设行,第二次设列:
var a: array of array of Integer;
SetLength(a,10);
SetLength(a[2], 5);
这种方式每一行的列数可以不一样
或者这样
SetLength(a,10,5)
这种方式每一行的列数一样
 
看看下面的例子一定令你满意
var
A : array of array of string;
I, J : Integer;
begin
SetLength(A, 10);
for I := Low(A) to High(A) do
begin
SetLength(A, I);
for J := Low(A) to High(A) do
A[I,J] := IntToStr(I) + ',' + IntToStr(J) + ' ';
end;
end;
 
这样多好:setlength(a,m,n);
 
LanFairy 的例子是正确的
你可以参考DELPHI50 编程指南和关于动态数组的DELPHI帮助:
在Multidimensional dynamic arrays 的主题中。
 
多人接受答案了。
 
后退
顶部