Hi Tom,

In MacRuby, an Array is actually a NSMutableArray instance, as you may know.

If you need to call a C or Objective-C method that accepts a C-style array, you can just pass the regular array object and MacRuby should do the conversion for you.

If you want to build the C array by yourself in pure Ruby, you might want to look at the Pointer class.

irb(main):001:0> ptr = Pointer.new(:int, 5)
=> #<Pointer:0x200337640>
irb(main):002:0> 5.times { |i| ptr[i] = i }
=> 5

This creates a C-style array of 5 C integers. You can access the slots by using #[] and #[]=. If you pass this pointer to a C or Objective-C method that is supposed to accept a C-style array of C integers, it should work.

Laurent

On Sep 10, 2009, at 9:37 AM, Tom Kleber wrote:

Is it possible to create static c-arrays in macruby?
In jruby Array has a a #to_java method which converts a Array object
to an java array (a = Array.new(6).to_java(:double))
Is there something like that supported in macruby?

Tom
_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

Reply via email to