PyArray_AsCArray防止内存泄漏

时间:2019-10-02 20:00:04

标签: python c numpy memory-leaks

我正在尝试使用NumpPy的PyArray_AsCArray函数将2D数组转换为2D C指针。我仅在满足特定条件时才这样做。我担心传递给函数的描述符如果不清理会导致内存泄漏。这是我在做什么:

if (some_condition) {
    int convert_success = PyArray_AsCArray(
            (PyObject **)&maybe_array, 
            (void*)&in_array, 
            new_dims, 2, 
            PyArray_DescrFromType(NPY_DOUBLE)
        );
}
....
if (maybe_array && in_array) {
    PyArray_Free((PyObject *)maybe_array, in_array);
}

此代码安全吗?还是我需要在if语句之外声明一个新的描述符,而不是仅仅传递PyArray_DescrFromType(NPY_DOUBLE)

0 个答案:

没有答案