草庐IT

c - 为什么没有分配 RARRAY_LEN?

我正在使用C扩展方法创建一个新的ruby​​数组,但是RARRAY_LEN没有设置。我做错了什么吗?longintmax=4;VALUErAry;rAry=rb_ary_new2(max);printf("allocated:%lu\n",RARRAY_LEN(rAry));输出:allocated:0 最佳答案 来自array.c(Ruby1.8.6):#defineRARRAY_LEN(s)(RARRAY(s)->len)RARRAY(s)->len与Array#length相同。rb_ary_new2(4)与Array.new