我经常使用动态数组,并且对 SetLength 和 Finalize 过程没有任何问题。
我最近有理由使用动态数组,其中每个数组元素本身可以包含可变数量的元素。声明是这样的:
TScheduleArray = array of array of array [1..DaysPerWeek] of TShiftType;
该软件运行良好,我没有遇到任何问题how使用这个结构。你打电话设置长度在主数组上,然后可以调用设置长度再次在每个数组元素上。这按预期工作。
SetLength(MyArray, 1);
SetLength(MyArray[0], 2);
我的问题是:当我要释放该数组使用的资源时,我是否只需调用Finalize在数组变量上:
Finalize(MyArray);
或者每个数组元素是否还需要Finalized,因为每个元素本身都是一个动态数组?
Quote :
“您在主数组上调用 SetLength
然后可以再次调用 SetLength
每个数组元素。”
您实际上不必遍历数组。
SetLength()
接受每个维度的长度列表。
Example:
SetLength(ScheduleArray,200,15,35);
是相同的:
SetLength(ScheduleArray,200);
for i:=low(ScheduleArray) to high(ScheduleArry) do
begin
SetLength(ScheduleArray[i],15);
for j:=low(ScheduleArray[i]) to high(ScheduleArray[i]) do
SetLength(ScheduleArray[i,j],35);
end;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)