FFI and pointers

Hello,

I'm playing around with FFI and encountered a problem, I could not solve
till now.
Let's assume I use standard C's malloc in my wrapper:

attach_function :malloc, [:int], :pointer

so far no problem. But what now? The pointer returned is of type void*,
which is of no help, since I need double*, int* and float* ...
Is there a type cast mechanism in FFI (or anything similar) or do I have to wrap
the original library in another layer of C (alternatively write a helper lib...)
Or can I import C's typecasts using FFI itself?

Best regards,
     Thorsten

Thorsten Hater wrote:

Hello,

I'm playing around with FFI and encountered a problem, I could not solve
till now.
Let's assume I use standard C's malloc in my wrapper:

attach_function :malloc, [:int], :pointer

so far no problem. But what now? The pointer returned is of type void*,
which is of no help, since I need double*, int* and float* ...
Is there a type cast mechanism in FFI (or anything similar) or do I have to wrap
the original library in another layer of C (alternatively write a helper lib...)
Or can I import C's typecasts using FFI itself?

Best regards,
    Thorsten

If nothing else, you can use the read_* and write_* methods (like read_int) to interact with it.

-Justin

Well, the problem is not to use the pointer type as such, but
compatibility issue.
I have this function behaving like malloc, and other functions
which take pointers to - let's say - float.
Since malloc returns void* I suspect the problems I experience
are due to this mismatch.

Justin Collins schrieb:

···

Thorsten Hater wrote:

Hello,

I'm playing around with FFI and encountered a problem, I could not solve
till now.
Let's assume I use standard C's malloc in my wrapper:

attach_function :malloc, [:int], :pointer

so far no problem. But what now? The pointer returned is of type void*,
which is of no help, since I need double*, int* and float* ...
Is there a type cast mechanism in FFI (or anything similar) or do I have to wrap
the original library in another layer of C (alternatively write a helper lib...)
Or can I import C's typecasts using FFI itself?

Best regards,
    Thorsten

If nothing else, you can use the read_* and write_* methods (like read_int) to interact with it.

-Justin