当前位置:主页>仓库管理软件> 列表

多维动态数组的基础问题求解。

财务软件版1楼: 1. 我定义了一个二维的动态数组。如:
m_MixData :array of array of byte;
申请空间时:我用 SetLength(m_MixData,width,height);
申请了第一次空间后,我在里面填了些数据。
a. 我再用 SetLength() 来改变了数组的大小,这时这些数据还在不???
b. 如果第二次比第一次的空间大,那多出来的空间是否自动用0来填充???
(以上两个我已试过,我想得到点理论上的支持)

2. 可不可以申明这一个这样的动态数据。第一维是固定大小的,而第二维是可变的??
如何申明???

2楼: 回答2.
多位数组也可以看成数组的数组
你有两种方式可以选择.如下
Type
TA=array of array[0..1] of char;
TB=array[0..1] of array of char;
var
A:TA;
B:TB;
I:Integer;
begin
SetLength(A,10);

for I:=Low(B) to High(B) do
begin
SetLength(B[I],10);
end;
end; 如网络管理软件

3楼: 楼上的应当写错了一些
var
A: array of array of byte;
begin
SetLength(A,10);


for I:=Low(A) to High(A) do
begin
SetLength(A[I],I);
end;
end;

4楼: 一楼说的是两种方法。

5楼: a. 我再用 SetLength() 来改变了数组的大小,这时这些数据还在不???
-->还在的


b. 如果第二次比第一次的空间大,那多出来的空间是否自动用0来填充???
--》
不一定的

2. 可不可以申明这一个这样的动态数据。第一维是固定大小的,而第二维是可变的??
如何申明???
可以,但没有必要呀

6楼: 啊,讨厌不初始化,虽然速度快

财务软件版7楼: 多人接受答案了。