Articles of punteros

Accediendo a la estructura subyacente de un PyObject

Estoy trabajando para crear una extensión de python c, pero tengo dificultades para encontrar documentación sobre lo que quiero hacer. Básicamente, quiero crear un puntero a un cstruct y poder tener acceso a ese puntero. El código de ejemplo está abajo. Cualquier ayuda sería apreciada. typedef struct{ int x; int y; } Point; typedef struct […]

¿Hay alguna forma de hacer una referencia suave u objetos tipo puntero utilizando matrices Numpy?

Me preguntaba si hay una manera de referir datos de muchas matrices diferentes a una matriz, pero sin copiarlos. Ejemplo: import numpy as np a = np.array([2,3,4,5,6]) b = np.array([5,6,7,8]) c = np.ndarray([len(a)+len(b)]) offset = 0 c[offset:offset+len(a)] = a offset += len(a) c[offset:offset+len(b)] = b Sin embargo, en el ejemplo anterior, c es una nueva […]

error de lanzamiento de create_string_buffer TypeError: str / bytes esperado en lugar de la instancia de str

Estoy probando este simple ejemplo de ctypes y obtengo el error mencionado >>> from ctypes import create_string_buffer >>> str = create_string_buffer(“hello”) Traceback (most recent call last): File “”, line 1, in File “C:\Python32\lib\ctypes\__init__.py”, line 59, in create_string_buffer buf.value = init TypeError: str/bytes expected instead of str instance ¿Alguien sabe qué estoy haciendo mal? En la […]

Pickle Cython Class con punteros en C

Estoy tratando de escribir un __reduce__() para una clase de cython que contiene punteros C, pero hasta ahora he encontrado muy poca información sobre la mejor manera de hacerlo. Hay __reduce__() ejemplos en torno a cómo escribir correctamente un __reduce__() cuando se usan matrices numpy como datos de miembros. Me gustaría mantenerme alejado de los […]

¿Cómo acceder a los datos desde el puntero en la estructura de Python con ctypes?

Tengo la siguiente estructura de C: typedef struct { uint8_t a; uint8_t b; uint32_t c; uint8_t* d; } Con ctypes, a través de una callback, puedo obtener un puntero a dicha estructura en Python, llamémoslo ref . Puedo obtener fácilmente a, b, c de esta manera: from ctypes import cast, c_uint8, c_uint32, POINTER a = […]

Referenciar primitivas globales contra objetos

¿Podría alguien explicar el siguiente resultado en Python? Cuando se ejecuta el siguiente fragmento de código, Python emite un error, diciendo que se hizo referencia a la variable x antes de la asignación: x = 1 def increase_x(): x += 1 increase_x() La solución, por supuesto, sería incluir la línea global x después de la […]

Python & Ctypes: pasar una estructura a una función como puntero para recuperar datos

He revisado otras respuestas pero parece que no puedo hacer que esto funcione. Estoy intentando llamar a una función dentro de una DLL para comunicarme con dispositivos SMBus. Esta función lleva un puntero a una estructura, que tiene una matriz como uno de sus campos. asi que… Cía: typedef struct _SMB_REQUEST { unsigned char Address; […]

Las variables de python son punteros?

Las variables en Python son solo indicadores, que yo sepa. Según esta regla, puedo asumir que el resultado de este fragmento de código: i = 5 j = i j = 3 print(i) sería 3 . Pero obtuve un resultado inesperado para mí, fue 5 . Además, mi libro de Python cubre este ejemplo: i […]