Obtenga el valor de un puntero Cython
Estoy escribiendo una función que construye un malloc'dunsigned char *
matriz, y luego vuelve a ejecutar el puntero. En Cython o C puro, esto es fácil. Todo lo que tiene que hacer es establecer un tipo de retorno en la función y devolver el puntero a la matriz. Hecho. Sin embargo, he llegado a un punto en el que necesito devolver un puntero a una matriz creada en Cython, a Python. Sé que un puntero es simplemente la dirección de memoria. ¿Hay alguna manera de que pueda devolver un puntero Cython a Python como un objeto python (como int o hexadecimal, porque la dirección de memoria es esencialmente un número), por lo que básicamente puedo administrar punteros en python?
He intentado devolver el valor del puntero de esta manera:
cdef unsigned char array[8]
def return_pointer():
return &array
Por supuesto, esto no funciona porque la conversión no se puede hacer. Cython se queja conCannot convert 'unsigned char (*)[8]' to Python object
. ¿Alguna sugerencia?
EDITAR:
No necesito acceder al valor en la dirección de memoria referenciada por el puntero en Python, solo paso el puntero. Luego planeo usar el puntero de objeto Python y llamar a c funciones con él como argumento.