[Python] ctypes puntatore ad un elemento di un array

Pietro peter.zamb a gmail.com
Mar 24 Lug 2012 23:10:29 CEST


Ciao a tutti,

ho una struct line_pnts che è così definita:

http://grass.osgeo.org/programming7/dig__structs_8h_source.html#l01654

è possibile avere il puntatore all'i-esimo elemento usando ctypes?

Ho definito una classe Line, che inserisce dei punti nella struct:

>>> line = Line([(0, 0), (1, 1), (2, 0), (1, -1)])
>>> type(line.c_points) # l'attributo c_points è una struct di tipo: line_pnts
grass.lib.vector.struct_line_pnts
>>> line.c_points.x[3] # controllo che i punti siano stati inseriti nella struct
1.0
>>> line.c_points.y[3] # controllo che i punti siano stati inseriti nella struct
-1.0
>>> type(line.c_points.y[3])
float
>>> type(line.c_points.y)
grass.lib.ctypes_preamble.LP_c_double
>>> ctypes.pointer(line.c_points.y[3]) # se provo ad avere il pointer mi solleva il seguente errore:
...
*** TypeError: _type_ must have storage info

è possibile e se si come ottenere un pointer al elemento i-esimo di un
array? In questo caso come dovrei fare?

Grazie per l'aiuto.

Pietro


Maggiori informazioni sulla lista Python