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