我有一个像cdef generate_data(size)
这样的Cython函数,我想:
- 初始化长度为
size
的字节数组 - 调用external (
C
)函数填充数组使用数组ptr和size - 以Python可理解的形式返回数组(bytearray, bytes,您的建议)
我在互联网上看到了很多方法,但我正在寻找最好的/推荐的方法来做这件事在我的简单情况下。我想:
- 避免内存重新分配
- 避免使用numpy
- 最好使用在Python 3和2.7中工作的东西,尽管2.7的解决方案已经足够好了。
我使用的是Cython 0.20
对于内存分配,我已经介绍过了。
之后,只需采取一个指针(可能在data
属性,如果你使用cpython.array.array
像我推荐的),并传递下去。您可以返回cpython.array.array
类型,它将变成一个Python数组。