On Saturday, December 21, 2013 02:28:01 PM Spencer Russell wrote: > Ah, thanks for this! Just yesterday I was trying to figure out how to pass > some pointers so they could be modified by a C function. This is a pretty > common idiom in lots of C code, maybe this little trick could be added to > the docs on C interop?
Pull requests are always welcome, and there are advantages to having people with "fresh eyes" contributing to the documentation. For documentation, you don't even need to mess with git; you can edit right on the webpage. Best, --Tim > > -s > > On Sat, Dec 21, 2013 at 10:31 AM, Isaiah Norton <[email protected]>wrote: > > ``` > > > > width = Cint[0] > > > > range = Cfloat[0] > > > > ccall(:foo, Void, (Ptr{Cint}, Ptr{Cfloat}), width, range) > > > > ``` > > > > > > Explanation: > > > > - the first line declares an array with a single element of Cint (Int32) > > type > > > > - ccall automatically passes the address of the first (here, only) element > > of the array when you request Ptr{Cint} / Ptr{Cfloat} in the type > > specification tuple> > > On Sat, Dec 21, 2013 at 10:15 AM, Andreas Lobinger <[email protected]>wrote: > >> Hello, > >> > >> i'm trying to use an external library for certain things and i need > >> somehow a 1:1 relation to certain input/output parameters: > >> > >> *float > >> *int > >> > >> I'm aware that the most promising thing is to do a type definition. > >> > >> Is > >> > >> type myiothing > >> > >> input::Array{Float32,1} > >> output::Array{Int32,1} > >> n_points:Int32 > >> > >> end > >> > >> the way to go, or is there something i'm missing (i have no clear > >> understanding, what Array{something,1} is creating only a pointer)? > >> > >> Wishing a happy day, > >> > >> Andreas
