在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它是一个记录类型的一部分,我不知道在编译时的大小。 –