我正在尝试使用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)
?