在Ada中初始化動態分配數組的正確語法是什麼?我試過這個:Ada用於初始化動態分配數組的語法
type Short_Array is array (Natural range <>) of Short;
Items : access Short_Array;
Items := new Short_Array(1..UpperBound)'(others => 0);
這會導致編譯器錯誤 - 「二元運算符預期」。而這:
type Short_Array is array (Natural range <>) of Short;
Items : access Short_Array;
Items := new Short_Array(1..UpperBound);
Items.all := (others => 0);
這似乎提高SEGFAULT令人驚訝。不知道那裏發生了什麼,但是想在我開始追逐我的尾巴之前獲得語法。
你爲什麼要動態分配一個數組? –
你的第二個版本在這裏工作得很好,macOS,GNAT GPL 2015/2016。你使用的是什麼操作系統/編譯器? –
@JimRogers它是一個記錄類型的一部分,我不知道在編譯時的大小。 –