###
13 配列

Arrayはシーケンスであり、決まった数の同じ型のインスタンスを持ちます。

推奨されている配列の作成方法はデータ型に正の整数を掛けることです:

    TenPointsArrayType = POINT * 10

ややわざとらしいデータ型の例になりますが、他のものに混ざって 4個のPOINTがある構造体です:

    >>> from ctypes import *
    >>> class POINT(Structure):
    ...    _fields_ = ("x", c_int), ("y", c_int)
    ...
    >>> class MyStruct(Structure):
    ...    _fields_ = [("a", c_int),
    ...                ("b", c_float),
    ...                ("point_array", POINT * 4)]
    >>>
    >>> print len(MyStruct().point_array)
    4
    >>>

インスタンスはクラスを呼び出す通常の方法で作成します:

    arr = TenPointsArrayType()
    for pt in arr:
        print pt.x, pt.y

上記のコードは`0 0`という行が並んだものを表示します。 配列の要素がゼロで初期化されているためです。

正しい型の初期化子を指定することもできます:

    >>> from ctypes import *
    >>> TenIntegers = c_int * 10
    >>> ii = TenIntegers(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
    >>> print ii
    <c_long_Array_10 object at 0x...>
    >>> for i in ii: print i,
    ...
    1 2 3 4 5 6 7 8 9 10
    >>>