【发布时间】:2020-12-23 07:03:53
【问题描述】:
我将 python 代码嵌入到 C++ 中。
我需要release memory(Py_XDECREF) PyObject* pValue 和 PyObject *pArgs 吗?
当我执行 Py_XDECREF(pArgs) 和 Py_XDECREF(pValue) 时,我遇到了分段错误(核心转储)。 我认为python方面仍在使用这些变量,而c ++尝试释放内存。 解决此问题的最佳做法是什么?
for(int i=0; i < 100: i++){
.......do sth.......
if (pModule != NULL) {
std::string st = jps.updateZone(worldx_y, lenVect);
PyObject* pValue = PyBytes_FromString(st.c_str());
if (pFunc_insert && PyCallable_Check(pFunc_insert)) {
PyObject *pArgs = PyTuple_New(1);
PyTuple_SetItem(pArgs, 0, pValue);
PyObject_CallObject(pFunc_insert, pArgs);
Py_XDECREF(pArgs);
}
Py_XDECREF(pValue);
}
......do sth.......
}
【问题讨论】:
标签: python c++ python-c-api