現在アプリケーション側から ruby の機能を呼び出す プログラムを作成しているのですが、うまく動きません。 rb_ary_push をしているところで、SIGSEV で落ちてしまいます。 >Program received signal SIGSEGV, Segmentation fault. >st_lookup (table=0x2, key=0xbc9 <Address 0xbc9 out of bounds>, > value=0xbfffdee8) at st.c:253 >253 hash_val = do_hash(key, table); >Current language: auto; currently c やっていることは配列の配列オブジェクトを生成で、 以下が単純化したソースです。 プログラム中で配列の大きさ(サンプルではN、M)が小さい時は 動作するのですが、大きくすると落ちてしまいます。 これはどのような制限によるものなのでしょうか? また、解決法がありましたら教えてください。 江本 使用環境: Linux Kernel 2.4.20 GCC 2.96 Ruby 1.6.8 > #include <ruby.h> > > const int N=1000; > const int M=1000; > int > main() > { > int i,j; > VALUE ary,ary2; > ruby_init(); > ruby_init_loadpath(); > ary = rb_ary_new(); > for(i=0;i<N;i++){ > ary2 = rb_ary_new(); > for(j=0;j<M;j++){ > rb_ary_push(ary2,rb_float_new((double )i)); > rb_ary_push(ary,ary2); > } > } > } >