在c ++中从数组创建Py_buffer

时间:2016-11-15 19:59:29

标签: python c++ c++11 pybuffer

我试图通过创建一个c ++模块来扩展我的python代码。我可以通过在python中调用'import my_code'来导入我的c ++代码,没有任何问题。当我尝试返回PyObject时出现问题。我想从我的c ++代码中创建一个vector * settle_nodes_vector,并将该向量中的数据作为二进制数据写入缓冲区并返回该缓冲区。现在我这样做:

PyBuffer_FromReadWriteMemory((void *) settled_nodes_vector->data(), settled_nodes_vector->size() * sizeof(result_node)));

当我在python中调用以下内容时

>>> import my_module
>>> result = my_module.make_buffer()
>>> result
<read-write buffer ptr 0x7fae708c5010, size 20335840 at 0x7fae899577b0>
>>> len(result)
20335840
>>> result[0]
92121 Segmentation fault    (core dumped) python -i

所以我的问题是,当我的结果是非零长度时,我怎么不能将我的信息编入索引。

0 个答案:

没有答案