【发布时间】:2012-08-22 20:33:47
【问题描述】:
有人可以检查是否存在内存泄漏吗?我很困惑。
PyObject * somefunc(int function_id, int num_params, int * params){
PyObject * params_list=PyList_New(0);
for(int i=0; i < num_params; i++){
PyObject * val = Py_BuildValue("i", params[i]);
PyList_Append(params_list, val);
Py_DecRef(val);
}
PyObject * arglist = Py_BuildValue("(i,O)",
function_id, params_list);
//Should I DecRef(params_list) ??
return arglist;
}
【问题讨论】:
-
尝试代码时会发生什么?
-
我没用过cpython,但你应该按照你的建议,在函数结束时释放params_list内存。
-
什么输出?内存泄漏不显示任何输出...
标签: c++ python cpython python-embedding python-extensions