0
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'는 Ruby 문자열 일 수있는 'VALUE'을 반환합니다. 'some_method'의 서명은 루비 문자열 (즉, VALUE) 또는 C 문자열 (예 :'char *')을 기대합니까? – matt
c 문자열을 기다리고 있습니다 – mandss