Re: error: conversion to non-scalar type requested
"Daniele Pianu" <[email protected]>
| Newsgroups | gmane.comp.python.pyrex |
|---|---|
| Message-ID | <[email protected]> |
Now I've not the code to try this, but I think it doesn't solve the problem. func function needs a struct in_addr, not a pointer to struct in_addr, so the cast is correct. Maybe the problem is in the generated C code. I'll post the original pyrex (and C generated) code that originate this error very soon to give you more details. 2008/4/10, Lenard Lindstrom <[email protected]>: > > The problems is with <in_addr>. It casts tmpinPtr to an in_addr > structure, not a pointer to in_addr (in_addr *). Try this: > > > tmp = <in_addr *>tmpinPtr[0] > > > > Lenard > > > > Daniele Pianu wrote: > > Suppose this code > > > > # getIstance return a long, that is a pointer to a in_addr struct > > cdef in_addr tmp > > tmpinPtr = in_.getIstance() > > tmp = <in_addr>tmpinPtr[0] > > > > # in this function gcc gives me an error > > func( tmp ) > > > > I take a pointer to a in_addr struct as a python long from the > > getIstance method. Then, I need to call a C function and pass a > > in_addr struct by value. With pyrex C the pyrex code compiles with no > > problems. But gcc gives me the error in mail's subject. > > > > error: conversion to non-scalar type requested > > > > How can I pass the structure by value deferencing a python long and > > casting it as the struct type I need? > > > > (I've wrote similiar code for function where I pass the structure by > > reference and there's no problems.) > > > > > > _______________________________________________ > Pyrex mailing list > [email protected] > http://lists.copyleft.no/mailman/listinfo/pyrex > _______________________________________________ Pyrex mailing list [email protected] http://lists.copyleft.no/mailman/listinfo/pyrex