在我的代码中,我想暂时将一些值存储在全局数组中,直到模块被卸载。一些函数可能会改变数组的大小,所以我认为我可以使用malloc的ed数组。
但是,我不确定如何释放它们。
我的代码看起来像这样:
cdef double* someStaticArray = [1., 1757.84036]
cdef double* someDynamicArray = <double*> malloc(someSize*sizeof(double)) # this array might be re-malloc'ed in fun
cdef int fun(double* data) nogil:
# do something with data and arrays above
...
return
如果你熟悉FFT,那么我很有趣&#34;类似于FFT(它是一个整数变换),我想存储最新的&#34;有趣的&#34;呼吁在下一个可能的重复使用&#34; fun&#34;呼叫。我从fftw库中得到了这个想法,如果我需要FFT,我会使用它。
我的主要问题主要是何时以及如何释放&#34; someDynamicArray&#34;如上例所示。我无法真正使用python对象或类似对象,但我很欣赏有关如何以不同方式解决此问题的建议。
编辑:我正在寻找一种合理的方式来做某事&#34; atexit&#34;在cython中。
干杯