gpt4 book ai didi

ada - 动态数组大小在 ada 中运行时确定

转载 作者:行者123 更新时间:2023-12-02 19:24:27 24 4
gpt4 key购买 nike

是否可以有一个大小在运行时确定的数组,如下所示,

Procedure prog is
type myArray is array(Integer range <>) of Float;
arraySize : Integer := 0;
theArray : myArray(0..arraySize);
Begin
-- Get Array size from user.
put_line("How big would you like the array?");
get(arraySize);

For I in 0..arraySize Loop
theArray(I) := 1.2 * I;
End Loop;
End prog;

除了使用动态链接列表或其他类似结构之外,还有其他方法可以实现此结果吗?或者是否有一个简单的内置数据结构比使用动态链接列表更简单?

最佳答案

当然,在 block 中声明它,如下所示:

procedure prog is
arraySize : Integer := 0;
type myArray is array(Integer range <>) of Float;
begin
-- Get Array size from user.
put_line("How big would you like the array?");
get(arraySize);

declare
theArray : myArray(0..arraySize);
begin
for I in 0..arraySize Loop
theArray(I) := 1.2 * I;
end Loop;
end;
end prog;

或者将 arraySize 作为参数传递到子程序中,并在该子程序中对其进行声明和操作:

procedure Process_Array (arraySize : Integer) is

theArray : myArray(0..arraySize);

begin
for I in arraySize'Range Loop
theArray(I) := 1.2 * I;
end Loop;
end;

这只是说明性的(并未编译:-),因为您需要处理无效的数组大小等问题。

关于ada - 动态数组大小在 ada 中运行时确定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13735274/

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