0

这段代码有一些问题。试图从我正在编写的 C++ 模块中返回一个元组(坐标)。它看起来对我来说,dirty列表包含两个Coords 所以len是 2,列表中项目的x和值分别是和。我第一次尝试这个,所以我很可能误解了文档或其他东西。有什么提示吗?y0,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)

...假设坐标实际上是 type int

于 2009-11-23T21:32:08.360 回答