struct ByteBuffer
{
int length;
uint8_t * dataBuf;
};
我想将dataBuf作为一个Python数组提供,因此我提出的类型映射(并起作用)是:
^{pr2}$问题是typemap每次都为新的C数组分配内存,而这个内存在dll中没有释放。换句话说,dll期望用户管理ByteBuffer的databuff的内存。例如,在Python中按顺序创建10000个这样的对象,然后删除它们时,内存使用量会稳步上升(泄漏):
for i in range(10000):
byteBuffer = mymodule.ByteBuffer()
byteBuffer.length = 10000
byteBuffer.dataBuf = [0]*10000
# ... use byteBuffer
del byteBuffer
有没有办法从python中删除分配的dataBuf?谢谢你的耐心!在
编辑:我不发布整个工作代码以保持简短。如果需要,我会做的。另外,我使用的是python3.5x64和swigver3.0.7
这比我想象的要简单得多。我刚刚把它添加到.I文件中
似乎有用。 编辑:通过delete[]自由切换
相关问题 更多 >
编程相关推荐