📅  最后修改于: 2023-12-03 15:41:24.676000             🧑  作者: Mango
自由数组是一种在 Delphi 7 中定义和使用动态数组的方式。它允许您在运行时指定数组的大小,并且可以使用它来动态管理内存。
在此之前,Delphi 的数组必须在编译时进行定义,该数组在程序运行时将始终保持相同的大小。自由数组可以做到在运行时动态更改数组的大小。
在 Delphi 7 中,定义自由数组的方法是声明一个未指定大小的数组,如下所示:
var
MyArray: array of Integer;
在上面的代码中,MyArray
是一个未指定大小的整数数组。
要动态分配数组的大小,您需要使用 SetLength
函数。此函数需要两个参数:您要设置大小的数组和新的大小。
例如,以下代码将 MyArray
的大小设置为 10
:
SetLength(MyArray, 10);
自由数组需要在运行时动态分配内存。这意味着您需要负责管理内存,并在不再需要数组时释放它。
要释放数组,请使用 SetLength
函数将其大小设置为 0
:
SetLength(MyArray, 0);
这将释放数组占用的内存空间。
以下示例将创建一个自由数组,将其大小设置为 5
,并向其添加一些数字。然后,它将动态扩展数组的大小,以容纳更多数字。
var
MyArray: array of Integer;
i: Integer;
begin
// 设置 MyArray 的大小为 5
SetLength(MyArray, 5);
// 向 MyArray 中添加一些数字
for i := Low(MyArray) to High(MyArray) do
begin
MyArray[i] := i * 10;
end;
// 将 MyArray 的大小动态扩展到 10
SetLength(MyArray, 10);
// 再添加一些数字
for i := Low(MyArray) + 5 to High(MyArray) do
begin
MyArray[i] := i * 10;
end;
// 释放数组占用的内存
SetLength(MyArray, 0);
end.
自由数组是一种有用的技术,使您可以动态管理数组的大小和内存。但是,您需要负责管理内存,并确保在不再需要数组时释放它。