Articles of punteros

Asignación de lista vs. int: “Cada variable es un puntero”

Sé que es una pregunta muy básica, pero necesito ayuda para entender este breve concepto. Estoy estudiando Python, y el libro dice: “Cada variable en Python es un puntero a un objeto. Por lo tanto, cuando escribes algo como y=x , estás de hecho haciendo que ambas apunten al mismo objeto. Si cambias el objeto […]

Usando SWIG con puntero para funcionar en C struct

Estoy tratando de escribir un contenedor SWIG para una biblioteca de C que utiliza punteros a funciones en sus estructuras. No puedo averiguar cómo manejar estructuras que contienen punteros de función. Un ejemplo simplificado sigue. prueba.i: /* test.i */ %module test %{ typedef struct { int (*my_func)(int); } test_struct; int add1(int n) { return n+1; […]

Creando swig wrapper para C ++ (punteros) a python

Soy muy nuevo en swig y estoy intentando crear una envoltura de swig para usar algunos archivos C ++ en Python. Tengo la siguiente clase de C ++. El siguiente es un fragmento del código que estoy tratando de convertir: /*packet_buffer.h*/ class CPacketBuffer { public: // construct based on given buffer, data is not copied […]

Boost.Python Converter para punteros no funciona

TLDR: ¿Es posible pasar tipos de punteros de C ++ a través de convertidores python? Aquí declaré mi MyStruct y mi tipo de puntero para PMYSTRUCT, la plantilla de convertidor PointerConverter y ese módulo de Python: #include namespace py = boost::python; template void from_python_converter() { py::converter::registry::push_back(&Converter::convertable, &Converter::construct, py::type_id()); } template class PointerConverter { public: static […]

Python, ¿cómo pasar un argumento a un parámetro de puntero de función?

Acabo de empezar a aprender Python y descubrí que puedo pasar una función como parámetro de otra función. Ahora, si llamo a foo(bar()) , no pasará como un puntero de función sino el valor de retorno de la función utilizada. Llamar a foo(bar) pasará la función, pero de esta manera no puedo pasar ningún argumento […]

Python equivalente de punteros

En python todo funciona por referencia: >>> a = 1 >>> d = {‘a’:a} >>> d[‘a’] 1 >>> a = 2 >>> d[‘a’] 1 Quiero algo como esto >>> a = 1 >>> d = {‘a’:magical pointer to a} >>> d[‘a’] 1 >>> a = 2 >>> d[‘a’] 2 ¿Qué sustituirías por un puntero mágico […]

Punteros y matrices en Python ctypes

Tengo una DLL que contiene una función C con un prototipo como este: int c_read_block(uint32 addr, uint32 *buf, uint32 num); Quiero llamarlo desde Python usando ctypes. La función espera un puntero a un fragmento de memoria, en el que escribirá los resultados. No sé cómo construir y pasar un trozo de memoria así. La documentación […]

Accediendo al contenido de una matriz de variables con ctypes.

Uso ctypes para acceder a un archivo que lee la función C en python. Como los datos leídos son enormes y desconocidos en tamaño, uso **float en C. int read_file(const char *file,int *n_,int *m_,float **data_) {…} Las funciones mallocs una matriz 2d, llamada data , del tamaño apropiado, aquí n , y copia los valores […]

ctypes puntero en medio de una matriz numpy

Sé cómo obtener un puntero de ctypes al principio de una matriz numpy: a = np.arange(10000, dtype=np.double) p = a.ctypes.data_as(POINTER(c_double)) p.contents c_double(0.0) sin embargo, necesito pasar el puntero, digamos, al elemento 100, sin copiar la matriz . Debe haber una manera fácil de hacerlo pero no se puede encontrar. Cualquier sugerencia apreciada.

¿Cómo asignar una dirección de memoria a una variable en Python?

Aquí está el escenario: Me olvido tontamente de asignar el objeto devuelto a una variable: >>> open(“random_file.txt”) ¿Hay una manera de asignar directamente la dirección de memoria a una variable? Algo más o menos equivalente a int *ptr; *ptr = 0x158f780; Puntos de contraataque: En este caso, simplemente puedo descartar el objeto: el archivo se […]