Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-C+中的内存泄漏+;接口? 我有一个Python C++接口的C++代码,需要用Python列表重复调用它作为输入。我发现虚拟进程也会导致内存泄漏,如下所示:_C++_Python_Memory Leaks - Fatal编程技术网

Python-C+中的内存泄漏+;接口? 我有一个Python C++接口的C++代码,需要用Python列表重复调用它作为输入。我发现虚拟进程也会导致内存泄漏,如下所示:

Python-C+中的内存泄漏+;接口? 我有一个Python C++接口的C++代码,需要用Python列表重复调用它作为输入。我发现虚拟进程也会导致内存泄漏,如下所示:,c++,python,memory-leaks,C++,Python,Memory Leaks,在python中: a = [1.0]*1000 for c in range(1000): dummy(a, 1) 在C++中: static PyObject* dummy(PyObject* self, PyObject* args) { Py_RETURN_NONE; } 我错过了这里的任何东西,所以它会导致内存泄漏吗?不,这很好,传递给c方法的对象只是借用的,也就是说,在返回之前不必减少对象的引用数(事实上,这是一个非常糟糕的错误) 例如,请参见本部分: 请注意,提

在python中:

a = [1.0]*1000
for c in range(1000):
    dummy(a, 1)
在C++中:

static PyObject* dummy(PyObject* self, PyObject* args) {
    Py_RETURN_NONE;
}

我错过了这里的任何东西,所以它会导致内存泄漏吗?

不,这很好,传递给c方法的对象只是借用的,也就是说,在返回之前不必减少对象的引用数(事实上,这是一个非常糟糕的错误)

例如,请参见本部分:

请注意,提供给 呼叫者是借来的参考;不要减少它们的引用 伯爵


你怎么确定你有内存泄漏?这很可能是你的问题。

我不这么认为。。。你确定这是内存泄漏,而不仅仅是GC还没有运行吗?事实上,我试图定期向代码中添加手动GC,但内存仍然会很快膨胀。我看不到这里的链接。我错过什么了吗?