有没有办法在 CStruct 中声明对象数组?
struct my_struct {
int foo;
int bar;
char somestring[80];
};
class My::Struct is repr('CStruct') {
has int32 $.foo;
has int32 $.bar;
???
}
ACArray[uint8]
将是一个char *
指针,实际上并不在结构内保留空间。
而不是My::Struct.new
,我可能自己制作内存(而不是My::Struct.new()
,我使用 abuf8.allocate(xxx)
并保留一个句柄,这样 GC 就不会收获它,nativecast
它到 My::Struct),然后我必须使用指针数学来找到里面的字符串结构等,但似乎应该有一种更简单的方法。
即使它没有完全实现,一个简单的方式来说“在这里放 80 个字节,这里是一个指向它的指针”会非常好。