和田と言います。

From: mi.ml / mac.com
Subject: [ruby-ext:02318] 【質問】ALLOC_NとALLOCA_N
Date: Sat, 07 Apr 2007 14:07:47 -0700

VALUE型をヒープに確保した場合は
rb_gc_markという関数でそのことをRuby側に
伝えてやる必要があるようです。
ですので、以下のようにすればいいのでは
ないでしょうか?

	for ( i = 0 ; i < length ; i++){
		t = INT2FIX( i + x0c );
		y = NUM2DBL( rb_ary_entry( ary1d, i ) ) ;
		xt = rb_float_new( y0c - ( y * ac ) ) ;
		item = rb_ary_new3( len, t, xt ) ;
		items[i] = item ;
		rb_gc_mark(items[i]);	/* <--- これを追加 */
	}

青木さんの
http://i.loveruby.net/w/RubyExtensionProgrammingGuide.html
を参考にしました。