ここに見られるように ctypes を使用して Python リストを C 配列に変換するにはどうすればよいですか? このコードは Python 配列を受け取り、それを C 配列に変換します。
import ctypes
arr = (ctypes.c_int * len(pyarr))(*pyarr)
リストのリストまたはリストのリストのリストで同じことを行う方法はどれですか?
たとえば、次の変数の場合
list3d = [[[40.0, 1.2, 6.0, 0.3], [50.0, 4.2, 0, 0]], [[40.0, 1.2, 6.0, 0.3], [50.0, 4.2, 0, 0]], [[40.0, 1.2, 6.0, 0.3], [50.0, 4.2, 0, 0]]]
私は運がないので次のことを試しました:
([[ctypes.c_double * 4] *2]*3)(*list3d)
# *** TypeError: 'list' object is not callable
(ctypes.c_double * 4 *2 *3)(*list3d)
# *** TypeError: expected c_double_Array_4_Array_2 instance, got list
ありがとうございました!
編集: 明確にするために、オブジェクトのリストではなく、多次元配列全体を含む 1 つのオブジェクトを取得しようとしています。このオブジェクトの参照は、3D 配列を期待する C DLL への入力になります。