現在アプリケーション側から 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);
>     }
>   }
> }
>