Я не эксперт по ctypes
, но, следуя документам , у меня работает следующее:
import ctypes
PI16 = ctypes.POINTER(ctypes.c_int16)
class Test(ctypes.Structure):
_fields_ = [
("my_pointer", PI16),
]
t = Test()
t.my_pointer = PI16(ctypes.c_int16(123))
print(t.my_pointer[0])
в противном случае вы можете сделать:
t.my_pointer = ctypes.pointer(ctypes.c_int32(123))
первый позволит вам делать странные вещи, такие как:
PI(ctypes.c_int64(123))[0]
Т.е. приведение между целочисленными типами разной ширины или, что еще хуже ...