Swig & passing array of arrays


#1

Hi,

I’m trying to get SWIG to create a wrapper for some C code. I have
some functions which take an int** (which points to an array of
arrays, and they also take the dimensions as arguments). I don’t
know how to do the typemap for this - I want to be able to write

My_module.my_c_function([[1,2],[3,4]])

for the corresponding C function

void my_c_function(int xsize, int ysize, int** aryary)

Anyone have any idea how to help me? From various googling, I
understand how to pass an array of ints, but passing arrays of arrays
has me stumped.

Thanks,
-albert


#2

Sorry I don’t have a complete answer for you … looks like this may
take a bit of work.

http://www.swig.org/Doc1.3/Typemaps.html#Typemaps_nn40

… shows an example using Python.

To call your function the way you want, looks like you’ll need to write
a typemap and/or helper functions to extract the Ruby array values and
populate a C array with the correct type values. ruby.h has a bunch of
conversion macros and prototypes that will help.

Good luck!