ctypes 陣列
正如任何優秀的 C 程式設計師都知道的那樣,單個值不會讓你那麼遠。真正讓我們前進的是陣列!
>>> c_int * 16
<class '__main__.c_long_Array_16'>
這不是一個真正的陣列,但它非常接近! 我們建立了一個表示 16 個 int
s 陣列的類。
現在我們需要做的就是初始化它:
>>> arr = (c_int * 16)(*range(16))
>>> arr
<__main__.c_long_Array_16 object at 0xbaddcafe>
現在 arr
是一個包含 0 到 15 之間數字的實際陣列。
可以像任何列表一樣訪問它們:
>>> arr[5]
5
>>> arr[5] = 20
>>> arr[5]
20
就像任何其他 ctypes
物件一樣,它也有一個大小和位置:
>>> sizeof(arr)
64 # sizeof(c_int) * 16
>>> hex(addressof(arr))
'0xc000l0ff'