What is the correct way to create a "pointer to pointer"?

FWIW, in LIKWID.jl I had to wrap a C API and in a few cases, a reference to a char** was required as input on the C side (to realize multiple string outputs). In the ccall I have Ptr{Ptr{Ptr{Cchar}}} for the input argument and to call it, I create and pass over a Ref{Ptr{Ptr{Cchar}}}(). Later, I use unsafe_wrap to get the strings.

3 Likes