我有python ctypes数组。我想在cython def和cdef函数中使用它。
import ctypes
from my_cython_extention import *
class Test_Node(ctypes.Structure):
_fields_ = [
("i", ctypes.c_int),
("f", ctypes.c_float),
]
my_array = (Test_Node * 10)()
my_cython_function(my_array)
如何定义cython函数my_cython_function
以访问my_array data
?我可以获得my_array
C ++数据指针吗?
答案 0 :(得分:1)
我找到了问题的答案:
cdef my_cython_function_c(
Test_Node *arr_addr, int arr_size
):
for i in range(arr_size):
printf("%i\n", arr_addr.i)
inc(arr_addr)
def my_cython_function(arr):
my_cython_function_c(<Test_Node *><long>ctypes.addressof(arr), len(arr))