定义未知数量的变量

时间:2012-04-18 03:34:35

标签: pascal freepascal lazarus

很久以前,我遇到了一个问题:如果我需要制作一个使用变量的小程序,你如何定义和未知的变量?

I.E,如果您有一个要求用户输入数字的程序,则用户输入的数字是程序中所需变量的数量。在Java或VB中很容易解决这个问题,因为你可以根据需要定义变量(在运行中),但是pascal会让你在主程序代码启动之前声明它们,所以你不能使用这个技巧。

我正在思考一个多维数组,但我认为这是解决这个问题的一种不好的方法,因为如果你定义的“方块”少于你需要的那么你就会变短,如果你定义的比你实际要用的更多,那么你会浪费记忆......

那么,你如何定义未知数量的变量?

2 个答案:

答案 0 :(得分:2)

您可以使用SetLength

动态调整数组大小
Type 
  TByteArray = Array of Byte;

Var
  Data : TByteArray
  NewSize : Integer;
Begin
  Write('Enter the number of bytes you require: ');
  ReadLn(NewSize)
  SetLength(Data, NewSize);
  ...
End;

请原谅任何语法错误,我在20多年内没有使用过Pascal。多么棒的语言!

答案 1 :(得分:1)

您需要根据用户提供的数量动态分配内存。如果此页面正确,您可以在FreePascal中执行此操作:

type dynamic_array= array of integer;
var x:dynamic_array;
setlength(x, k);

其中k是用户输入