我得到这个错误如何从我的c扩展中访问红宝石数组?
ev.c:11: error: subscripted value is neither array nor pointer
此行
printf("%d\n", pairs[0][0]);
在这段代码
static VALUE EV;
static VALUE PairCounter;
static VALUE
sort_pairs_2(VALUE self) {
VALUE pairs;
pairs = rb_ivar_get(self, rb_intern("pairs"));
printf("%d\n", pairs[0][0]);
return Qnil;
}
void Init_ev() {
rb_eval_string("require './lib/ev/pair_counter'");
VALUE PairCounter = rb_path2class("EV::PairCounter");
rb_define_method(PairCounter, "sort_pairs_2", sort_pairs_2, 0);
}
我使用不当的自我,并且rb_ivar_get实际上没有指向PairCounter类?
感谢mu,这段代码使我朝着正确的方向前进。 –