我在ADA定义的矩阵型是这样的:阿达无效索引约束
type Matrix_Type is array(Natural range <>, Natural range <>) of Item_Type;
,我需要一个函数来定义一个矩阵切片。
我想,通过这样做以下方式
procedure Do_Stuff(M: Matrix_Type) is
-- c needs to be half as big as the input matrix M
C: Matrix_Type(A'Length/2, A'Length/2);
begin
...
end Do_Stuff;
但是,编译失败,出现错误:invalid index constraint
我不太明白,既然把A'Length
返回一个数字作为A'Length /2
一样。如果我使用这样的固定数字声明C
C: Matrix_Type(2,2);
一切工作正常。
这种情况下的错误是什么,如果我将一些未初始化的矩阵传递给函数,我会理解它的唯一可能情况是,即使这对我来说也不合理。
你说'C :矩阵(2,2);'工作正常,但它不在这里!完全一样的错误。 –