我使用动态数组很多,并且SetLength和Finalize程序没有问题.
我最近有理由使用动态数组,其中每个数组元素本身可以包含可变数量的元素.声明是这样的:
TScheduleArray = array of array of array [1..DaysPerWeek] of TShiftType;
Run Code Online (Sandbox Code Playgroud)
该软件工作正常,我没有遇到如何使用这种结构的问题.在主数组上调用SetLength,然后可以在每个数组元素上再次调用SetLength.这是按预期工作的.
SetLength(MyArray, 1);
SetLength(MyArray[0], 2);
Run Code Online (Sandbox Code Playgroud)
我的问题是:当我来释放用于此数组的资源时,我是否只是在数组变量上调用Finalize:
Finalize(MyArray);
Run Code Online (Sandbox Code Playgroud)
或者每个数组元素是否也需要Finalize d,因为每个元素本身就是一个动态数组?