[Pyrex] error: conversion to non-scalar type requested

Lenard Lindstrom len-l at telus.net
Thu Apr 10 22:07:51 CEST 2008


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.)
>




More information about the Pyrex mailing list