0

ラップした C++ コードから返されたポインターを処理する単純な SWIG ヘルパー関数を作成しました。

//in module foo:
%inline %{
  double getPtrVal(double *ptr, int i) {
    return (double) ptr[i];
  }
%}

次のようなことを試すまで、これはうまくいきました:

for i in range(n):
  for j in range(n):
    val = foo.getPtrVal(ptrs, i)

その時点で、Python は TypeError を返しn、整数ではないことを訴えました。

  for i in range(n):
TypeError: an integer is required

n実際、これは整数 (type(n)一貫して を返します) であることを保証します<type 'int'>。したがって、問題は何らかの形で SWIG 機能にあると思います。奇妙なことに、何回も問題なくfoo.getPtrVal(ptrs, i)呼び出され、内部ループを初めてn終了した直後にエラーがスローされます。j何か案は?部分を明確にする場合は、さらにコード セグメントを投稿できます。ありがとう!

4

2 に答える 2

0

実際のコードにはコロンがありませんでしたか?

于 2013-07-18T17:01:23.597 に答える