0

このコードに問題があります。C++ モジュールからタプル (座標) のタプルを返そうとしています。リストには 2 つの sdirtyが含まれているので、リスト内の項目のとの値はそれぞれとです。初めてこれを試みるので、ドキュメントなどを誤解している可能性があります。ヒントはありますか?Coordlenxy0,00,1

PyObject* getDirty()
{
    int len = dirty.size();
    PyObject* tuple = PyTuple_New(len);
    int count = 0;
    for (std::list<Coord>::iterator i = dirty.begin(); i != dirty.end(); ++i)
    {
        PyTuple_SET_ITEM(tuple, count, PyTuple_Pack(2, (*i).x, (*i).y));
        ++count;
    }
    return tuple;
}

編集:ああ、言い忘れましたが、実際のクラッシュは進行中ですPyTuple_Set_ITEM

4

1 に答える 1

1

への引数は、最初の引数の後にポインタPyTuple_Packでなければなりません。PyObject

代わりに欲しいかもしれません

Py_BuildValue("(ii)", (*i).x, (*i).y)

...座標が実際にはタイプであると仮定しますint

于 2009-11-23T21:32:08.360 に答える