Cythonを使用してC++ライブラリのラッパーを作成しようとしています。しかし、ライブラリの関数の1つがパラメータconst char**
を取りますので、私は今問題に取り組んでいます。どうやら、私は文字列のリストを渡しているので、私はジレンマに私を残して、この変換を行うことができません(Why am I getting an error converting a ‘float**’ to ‘const float**’?)、それはx
関数に呼び出す、私は対応するchar **オブジェクトを生成しようとしています、のループのためのmallocと使用して、a
それを呼びましょう:Cythonのchar **をconst char **に変換する方法は?
def f(x):
cdef char** a = <char**> malloc(len(x) * sizeof(char*))
for index, item in enumerate(x):
a[index] = item
......
は、ここでは回避策はありますか?私が考えることができるのはconst_cast
ですが、Cythonで実装されているかどうかはわかりません。
、ありがとう! – Alex
リスト 'x'がどこかで参照されている限り、これは機能します。その後、配列は、割り当てが解除され、おそらく再利用されたメモリ位置を指し示します。また、 'x'の内容を変更すると、問題が発生する可能性があります。 –