From: "Joachim (München)" Date: 2007-08-09T19:20:04+09:00 Subject: SWIG question: how to return an array from C to Ruby ? I need to make some C functions available to Ruby. One of them sets an array of doubles. I want to return this array to Ruby. On the C side: data_reader.c: #include "hardwaredriver.h" ... void read_data( double *data ) { for( i=0; i<8; ++i ) data[i] = .... // get values from hardware driver } On the Ruby side, I would like to obtain the following irb> require "data_reader" true irb> arr = Data_reader.read_data [ 0.0, 0.1, ... ] # arr now contains eight Floats Question 1: Do I understand correctly that there are basically two different ways to proceed ?: (a) wrapping the C code with SWIG, (b) converting the C code to an explicit Ruby extension as described in the Book: http://www.rubycentral.com/pickaxe/ext_ruby.html IF the answer is yes, THEN Question 2: How do I return an array through C->SWIG-> Ruby ? Web search gave me some hints on how to do it in the opposite direction, using typemap(in); but it seems not trivial to invert to typemap(out). Thanks in advance, Joachim