我试图通过创建一个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
所以我的问题是,当我的结果是非零长度时,我怎么不能将我的信息编入索引。