什么时候取消分配复合类型的匿名访问组件?

时间:2018-04-07 23:50:46

标签: dynamic-memory-allocation ada anonymous-types

我想知道像这样的匿名对象回收内存的生命周期/时刻是什么:

type Cell_Type is abstract tagged limited record
   Where : Coordinates_Array; -- 2D array
   Contents : access String;
end CELl_TYPE;

Cell_type也是通过分配器创建的。 对于命名访问类型,我知道规则(或者这样认为,如果我错了,请纠正我),即当类型(非子类型)的定义范围结束时回收池。但是匿名访问对象呢? 规则说:  用于匿名访问类型的分配器的存储池应确定如下: 25.1 / 2:[共同扩展,我得到了那个]

25.2 / 2:对于其他访问判别式和访问参数,应在分配器点创建存储池,并在分配的对象变得不可访问时回收; [我觉得这里不重要......我的情况似乎不是一个访问判别式,即使语法看起来很相似]

25.3 / 3 [访问返回功能,无所谓]

25.4 / 2:否则,应在详细描述匿名访问类型的位置创建默认存储池;这样的存储池不需要支持单个对象的重新分配。

那么? 何时取消分配“内容”?

  • 答:在节目结束时?

  • 或者B:当“cell_type”类型超出范围时?对于库级别的定义,这将意味着在库的实例化范围的最后......对于我的情况,这意味着A。

0 个答案:

没有答案