parsing a tuple in embedded python

Fredrik Lundh fredrik at pythonware.com
Sun Oct 30 08:44:50 EST 2005


jenkins.justin at gmail.com wrote:

> I am returning a tuple from my python method and am stuck trying to
> figure out how to read it into a C array using PyArg_Parse.
> My C Code:
> int array[3];
> PyArg_Parse(return, "(iii)", &array);
>
> My Python Code:
> mytuple = (1,2,3)
> return mytuple
>
> That gives me a segmentation fault. What am I doing wrong?

you're not providing enough arguments; "iii" means three pointers, not
one.  try:

    PyArg_Parse(return, "(iii)", array, array+1, array+2)

instead.  or, if you prefer maximum clarity:

    PyArg_Parse(return, "(iii)", &array[0], &array[1], &array[2])

(I assume you left out the error handling code; ignoring the return value
from PyArg_Parse is not a good idea)

</F>






More information about the Python-list mailing list