我经常使用动态数组,并且在 SetLength 和 Finalize 过程中没有任何问题。
最近,我需要使用动态数组,其中每个数组元素本身可以包含多个变量。声明如下:
TScheduleArray = array of array of array [1..DaysPerWeek] of TShiftType;
软件运行良好,我对如何使用这个结构没有问题。你需要在主数组上调用SetLength,然后可以在每个数组元素上再次调用SetLength。这正如预期的那样工作。
SetLength(MyArray, 1);
SetLength(MyArray[0], 2);
我的问题是:当我要释放用于该数组的资源时,我是否只需在数组变量上调用Finalize:
Finalize(MyArray);
或者每个数组元素也需要进行Finalize,因为每个元素本身都是一个动态数组?