Cython的cdef函数使用临时数组,需要remove/deallocated吗?

Cython's cdef function use of temporary array, does it needs to be remove/deallocated?

我看过一个带有 cdef 函数的 cython 代码,它使用了一个临时数组

cdef void some_funct (int* OUT, int size, int const_val) nogil:
    cdef:
        int blah.. blah...blah... 
        float    out_tmp[8]
  
    for i in range(64):
        .....
        ..... out_tmp is involved somehow as intermediate array
        

什么是 out_tmp?它是一个向量吗?一个 C++ 数组?指针?我是否需要 remove/delete 或在退出 cdef 函数之前取消分配它,或者 cython 会自动执行此操作?如果需要手动清理,如何remove/delete/deallocate?

谢谢。

out_tmp 是堆栈分配的 C 数组。它仅在函数调用期间存在(所以不要 return 指向它的指针!)并且不需要释放。