我得到這個錯誤如何從我的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,這段代碼使我朝着正確的方向前進。 –