Python — Создание Py_buffer из массива в переполнении стека

Я пытаюсь расширить свой код на 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

Итак, мой вопрос: как получается, что я не могу индексировать свою информацию в моем результате, если она не равна нулю?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]