可能的内存泄漏
Possible memory leaks
有人可以检查是否存在内存泄漏吗?我很困惑。
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;
}
如 C API 文档中所述,Py_BuildValue
的O
格式代码会递增其参数的引用计数,因此您正在泄漏对 params_list
的引用。
可以通过添加Py_DECREF
调用或改用N
格式代码来解决此问题,该代码的行为类似于O
,但拥有其参数的所有权。
相关文章:
- C++功能泄漏内存,我是C++新手,不确定如何解决
- 我的堆栈弹出式磁带的实现是否泄漏内存?
- 将 c++ 向量转换为字符 ** 而不会泄漏内存
- 析构函数 C++ 使泄漏内存
- 构造函数对象赋值是否泄漏内存
- corba :: orb_init泄漏内存
- Gmock泄漏内存
- 如何在不泄漏内存的情况下删除链接列表
- Visual C ODBC关闭记录集泄漏内存
- 为什么泄漏内存比在动态数组上执行 delete[] 慢
- OpenGL正在泄漏内存.哪个对象未释放
- 可以std ::退出泄漏内存
- uiautomation findall泄漏内存
- 为什么在此OpenCL代码中泄漏内存,为什么要泄漏内存
- pthread在完成后会泄漏内存
- win32 标准::线程泄漏内存
- 返回指向同一变量的指针是否会泄漏内存
- 使用clectType(new any_type())可能会泄漏内存泄漏
- Windows开发:如何确定我的应用程序是否正在泄漏内存
- WinHttp打开泄漏内存