我在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);'工作正常,但它不在這裏!完全一樣的錯誤。 –