From: kkubota@18software.co.jp Date: 1999-10-06T17:58:56+09:00 Subject: [ruby-list:17455] C のデータを Ruby から参照したい こんにちは、クボタです。 Cのモジュールが持つ配列を ruby に渡したいのですが うまく行きません。 やりたい事は、C側にある配列データを、ruby 側から それを取り出すCの拡張モジュールを呼び出して参照 する。 という事なのですが...。 ソースは以下の通りです。 ----< test2.c >-------------------- #include "ruby.h" static VALUE arybuf; static VALUE func_test2(obj) VALUE obj; { VALUE testbuf[] = {1,2,3,4,5,6,7,8,9,0}; arybuf = rb_ary_new4(10, testbuf); return arybuf; } void Init_test2() { VALUE mTEST2 = rb_define_module("TEST2"); rb_define_module_function(mTEST2, "test2", func_test2, 0); } --------------------------------- ----< test.rb >--------------------- require 'test2' include TEST2 print "test start\n" ary = TEST2::test2() # Cの配列を取り出したつもり ary.each{|i| print "ary = ", i,"\n" } --------------------------------- この test.rb を実行すると、 ary = 1 ary = 2 : : ary = 9 ary = 0 と表示されるのを期待していましたが、以下のように表示 されます。 ary = 0 ary = true ary = 1 ary = nil ary = 2 test.rb:7: [BUG] Segmentation fault ary = IOT trap/Abort 期待した動作をさせるには、どこを修正すればよいかご指導 お願いします。