如何采用PyArray / numpy数组分配的内存?

时间:2017-02-16 23:57:36

标签: python numpy

目的

我想在c ++中获取从我的c ++扩展名调用的python函数返回的numpy ndarray内存缓冲区的所有权(当这有意义时......连续,Py_REFCNT(array)==1)。

背景

我希望将此指针传递给另一个库(我无法更改)。我可以从它采用的原始指针为这个库构造一个Buffer。这个库使用写时复制缓冲区,因此我不能简单地保留ndarray对象的副本,直到Buffer对象消失。

我尝试了什么

清除NPY_ARRAY_OWNDATA标志没有运气。 设置array->data = 0array->nd=0也是如此。 我仍然得到双重自由或腐败"错误。我推测这是因为ndarray仍然以某种方式释放了那段记忆。

环境

我受限于python 2.6和numpy 1.4.1(RedHat / CentOS 6)

0 个答案:

没有答案