Я пытаюсь расширить свой код на Python, создав модуль C ++. Я могу импортировать мой код на C ++, без проблем вызывая import my_code на python. Моя проблема возникает, когда я пытаюсь вернуть PyObject. Я хочу взять из моего кода на языке c ++ вектор, который я создал, и записать данные этого вектора в виде двоичных данных в буфер и вернуть этот буфер. Прямо сейчас я делаю это:
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
Итак, мой вопрос: как получается, что я не могу индексировать свою информацию в моем результате, если она не равна нулю?
Задача ещё не решена.
Других решений пока нет …