13.14.1.15 Pointer classes/types

Behind the scenes, the pointer function does more than simply create pointer instances, it has to create pointer types first. This is done with the POINTER function, which accepts any ctypes type, and returns a new type:

>>> PI = POINTER(c_int)
>>> PI
<class 'ctypes.LP_c_long'>
>>> PI(42)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: expected c_long instead of int
>>> PI(c_int(42))
<ctypes.LP_c_long object at 0x...>
>>>

See About this document... for information on suggesting changes.