gpt4 book ai didi

delphi - 如何声明一个在运行时指定长度的数组?

转载 作者:行者123 更新时间:2023-12-03 15:42:11 24 4
gpt4 key购买 nike

我需要声明一个具有用户定义维度的数组。这个数组位于一个相当大的程序中,更改为列表可能是一个很大的问题。

现在我的数组声明如下:

Buffer: array[0..myCostant * 2] of Byte;

myCostant 就像它所说的那样,是一个已经定义的常量。现在我需要使用一个变量,得到这样的东西:

Buffer: array[0..myVar * 2] of Byte;

但我不能在数组定义中使用变量。

如何在不更改其他数组的情况下解决这个问题?这个变量是有上限的,所以我可以声明具有这个最大大小的数组并用另一条指令减少它吗?

最佳答案

您应该使用dynamic arrays :

var
Buffer: array of Byte;

begin
SetLength(Buffer, myVar*2 + 1);

或者,您可以使用已知上限长度的静态数组,并将数组的当前“有意义”长度记录在变量中,例如 CurrentLength

然后你可以替换,例如,

for i := 0 to Length(Buffer) - 1 do
SomethingWith(Buffer[i]);

for i := 0 to CurrentLength - 1 do
SomethingWith(Buffer[i]);

关于delphi - 如何声明一个在运行时指定长度的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14816758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com