C++调用python内存泄露问题
直接贴代码把,c++调用python中的函数,pyParams这个指针所指向的参数在执行完后 Py_DECREF(pyParams)并未释放内存成功,求大神指导如何释放。
bool CSshSession::ExecCommand(char *commandLine)
{
PyObject* pyParams=NULL;
PyObject* pyValue=NULL;
char *psresult=NULL;
m_commandLine=commandLine;
if (m_pexeFunc && PyCallable_Check(m_pexeFunc))
{
pyParams = PyTuple_New(2);
PyTuple_SetItem(pyParams, 0, Py_BuildValue("s",m_commandLine));
PyTuple_SetItem(pyParams, 1, Py_BuildValue("s",m_pprompt));
// ok, call the function
pyValue = PyEval_CallObject(m_pexeFunc, pyParams);
PyArg_Parse(pyValue, "s", &psresult);
if (pyValue)
{
printf("%s\n",psresult); //output is 7,3
}
}
m_strResult = psresult;
if(pyParams)
Py_DECREF(pyParams);
if(pyValue)
_Py_Dealloc(pyValue);
return true;
}