Я не знаю исходный код ruby; просто посмотрев на то, что вы опубликовали:
Тип struct RString
имеет 2 члена: basic
(типа struct RBasic
) и as
(типа без тегов).
Объединение без тегов, обозначенное as
, имеет 2 члена: heap
типа структуры без тега и ary
массива типа char.
Структура без тегов, обозначенная heap
, имеет член ptr
.
Итак, чтобы достичь этого, вам нужно
struct RString x;
x.as.heap.ptr; /* this is a char* */