📜  自由数组 Delphi 7 - Delphi (1)

📅  最后修改于: 2023-12-03 15:41:24.676000             🧑  作者: Mango

自由数组 Delphi 7

介绍

自由数组是一种在 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.
结论

自由数组是一种有用的技术,使您可以动态管理数组的大小和内存。但是,您需要负责管理内存,并确保在不再需要数组时释放它。