在cython函数中使用python ctypes数组数据

时间:2018-01-10 10:07:34

标签: python cython ctypes

我有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 ++数据指针吗?

1 个答案:

答案 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))