Hi,
I think I see whats going on. If the pointer that is being passed to
pointer_to_array is void, then you get a array of void pointers. In my case
the original array was an array of strings, so...
arr = pointer_to_array(cbdata, 4, true)
println(bytestring(convert(Ptr{Uint8}, val[1])))
Is there a better way to do this?
Thanks,
-G
On Sunday, August 10, 2014 4:23:29 AM UTC-5, Gerry Weaver wrote:
>
> Hi Kevin,
>
> I found the pointer_to_array function, but I'm having some trouble
> figuring how to call it correctly. I assume it has something to do with the
> pointer being a void pointer. I've been searching for something that might
> give me a clue how to do this, but I haven't found anything very useful so
> far.
>
> Thanks,
> -G
>
> On Sunday, August 10, 2014 4:06:52 AM UTC-5, Kevin Squire wrote:
>>
>> Hi Gerry,
>>
>> "pointer_to_array" is probably what you're looking for. See
>> http://julia.readthedocs.org/en/latest/manual/calling-c-and-fortran-code/#accessing-data-through-a-pointer
>>
>> for more information.
>>
>> Cheers,
>> Kevin
>>
>>
>> On Sun, Aug 10, 2014 at 1:17 AM, Gerry Weaver <[email protected]> wrote:
>>
>>> I forgot to mention that I'm trying to accomplish this with arrays right
>>> now. I can pass a Julia array to C and access it there, but I can't figure
>>> out how to convert it back to a Julia array from a C void pointer when
>>> calling back to Julia from C.
>>>
>>>
>>> On Sunday, August 10, 2014 1:57:18 AM UTC-5, Gerry Weaver wrote:
>>>>
>>>> Hello All,
>>>>
>>>> I have a C function called mycfunc that takes a callback function
>>>> pointer (cbfunc) and a void pointer (cbdata) as arguments. mycfunc calls
>>>> the callback function (cbfunc) passing the void pointer (cbdata) as its
>>>> argument. I'm trying to figure out how to pass a Julia type as the void
>>>> pointer argument and convert it back to the Julia type in the Julia
>>>> function passed as the callback function argument. I can do this with a
>>>> simple string, but I'm having some difficulty in figuring out how to do it
>>>> with arrays and other types. Any advice on this would be much appreciated.
>>>>
>>>>
>>>> typedef int (* mycallback)(void *cbdata);
>>>>
>>>> void mycfunc(mycallback cbfunc, void *cbdata)
>>>> {
>>>> cbfunc(cbdata);
>>>> }
>>>>
>>>> Thanks,
>>>> -G
>>>>
>>>>
>>>>
>>