zhangfeng19880710 2017-02-08 08:03 采纳率: 20%
浏览 2763
已结题

c调用python, 内存泄露问题,弄了好久,请教大神,万分感激!

空间都释放了的,为什么多次调用此函数时,占用内存长的很快,确认了调用的python函数没有内存泄露问题
bool CallPyWaveletConvert(STWaveletConvertInfo& info)
{
PyObject* pArgs = PyTuple_New(1);
PyObject* pList = PyList_New(0);
int iLen = info.m_iInputDataLen;
for (int i = 0; i < iLen; i++)
{
PyObject* pValue = PyFloat_FromDouble(info.m_fInputData[i]);
PyList_Append(pList, pValue);
}

PyTuple_SetItem(pArgs, 0, pList);
PyObject* pRet = PyEval_CallObject(pFuncWaveletConvert, pArgs);

info.m_iOutputDataLen = PyList_Size(pRet);
for(int i=0;i<info.m_iOutputDataLen;++i)
{
PyObject *pNewAge = PyList_GetItem(pRet,i);

PyArg_Parse(pNewAge, "d", &info.m_fOutputData[i]);

}

Py_XDECREF(pList);
Py_XDECREF(pRet);

return true;
}

  • 写回答

4条回答 默认 最新

  • shen_wei 2017-02-08 08:32
    关注
    评论

报告相同问题?