принять этот кодКак скопировать список подталкивание питона или его ссылку с оператором «=»
#include<boost/python>
namespace bp = boost::python;
bp::list py_points; //initial list
other_class* C; // this class have a bp::list attribute called py_list
// ... some code ....
// in this part C.py_list.ptr() is 0x0
other_class->py_list = py_list; // problem here!!
проблема с оператором «=»
в отладчике в файле object_core.hpp, это файл ядра подталкивание питон
inline api::object_base& api::object_base::operator=(api::object_base const& rhs)
{
Py_INCREF(rhs.m_ptr);
Py_DECREF(this->m_ptr); // in this line the program fail
this->m_ptr = rhs.m_ptr;
return *this;
}
что такое правильный способ использовать оператор «=»
отредактирован
проблема заключается в стек, если указатель other_class-> py_list равно нулю (или None, так как конструктор класса не вызывается) программа не могу назвать несильно Py_DECREF (Не существует ссылки до того указателя NULL)
проблема будет исправить вызов конструктора
other_class* C = new othe_class(); // fixed!!
thaks много, я отредактировал сообщение немного – ljofre