if (RARRAY_LEN(arr) > 0)
{
VALUE str = rb_ary_entry(arr, 0);
abc = some_method(*str);
}
rb_ary_entry(arr, 0)
дает мне значение индекса. Затем я хочу преобразовать это значение в строку, чтобы передать его следующему методу. Я пробовал:Прочитать элемент массива и преобразовать в строку
rb_str_new2(rb_ary_entry(arr, 0));
, но я получаю сообщение об ошибке сказав:
error: indirection requires pointer operand `('VALUE' (aka 'unsigned long')` `invalid`)`
`ipDict = some_method(*str)`;
'rb_ary_enrty' возвращает значение VALUE, которое может быть строкой Ruby. Что такое подпись 'some_method', ожидает ли она строки Ruby (т. Е. VALUE) или строки C (т. Е.' Char * ')? – matt
Ожидается c Строка – mandss