很久以前,我遇到了一个问题:如果我需要制作一个使用变量的小程序,你如何定义和未知的变量?
I.E,如果您有一个要求用户输入数字的程序,则用户输入的数字是程序中所需变量的数量。在Java或VB中很容易解决这个问题,因为你可以根据需要定义变量(在运行中),但是pascal会让你在主程序代码启动之前声明它们,所以你不能使用这个技巧。
我正在思考一个多维数组,但我认为这是解决这个问题的一种不好的方法,因为如果你定义的“方块”少于你需要的那么你就会变短,如果你定义的比你实际要用的更多,那么你会浪费记忆......
那么,你如何定义未知数量的变量?
答案 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
是用户输入