我一直在尝试用对象控制基础原生对象的生存期来包装原生对象的CPointer类型。
用C ++术语,我会做类似的事情:
class T {
private:
U other;
};
甚至:
class T {
public:
T(){ other = new U; }
~T(){ delete other; }
private:
U other;
};
我什至不确定这是否正确,但是想法很简单:“ other”对象由T类型的对象持有。
问题是我不知道在Kotlin本机中这是否可行:
class T {
private val arena = Arena()
private val ptr: Cpointer<U> = arena.alloc()
// Should I delegate the free method to T?
}
就我而言,竞技场不会自动回收内存,对吗?我必须打电话给.free()
或.clear()
。
有什么办法可以达到这种效果?还是唯一的方法是memScoped
手动使用和免费调用arena的clear或ptr?
或者,什么是防止K / N中内存浪费/泄漏的最佳方法?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句