C结构在Swift转换中缺少属性

C结构在Swift转换中缺少属性,c,swift,struct,swift3,C,Swift,Struct,Swift3,我在Swift 3应用程序中使用C库。库中定义的结构之一定义如下: struct termRow { void *bitmaps[BITMAP_PTRS]; int flags; uint64_t chars[]; }; 在我的Swift代码中,当我引用这个termRow类型的属性时,我可以访问位图和标志,但是找不到chars数组!在Xcode中,自动完成讲述故事-无字符值: 我的假设是Swift无法翻译uint64\t数组?如果是这样的话,我该怎么做才能使它在我的Sw

我在Swift 3应用程序中使用C库。库中定义的结构之一定义如下:

struct termRow {
    void *bitmaps[BITMAP_PTRS];
    int flags;
    uint64_t chars[];
};
在我的Swift代码中,当我引用这个termRow类型的属性时,我可以访问位图和标志,但是找不到chars数组!在Xcode中,自动完成讲述故事-无字符值:


我的假设是Swift无法翻译uint64\t数组?如果是这样的话,我该怎么做才能使它在我的Swift代码中工作,而不会把库的其余部分搞砸?

我从图像中假设您的row变量是struct termRow的本地实例。您确定chars数组已初始化吗?结构末尾没有定义边界的数组是长度不确定的数组;如果它在本地情况下没有初始化,或者在指针情况下没有分配,那么从技术上讲它是不存在的。也许这就是Xcode想要告诉你的

也许它只是不喜欢灵活的数组成员。库是什么?你有完整的标题吗?在C、C++或ObjtoE-C程序中使用过吗?确实,数组的大小使它显示出来。唉!谢谢,不用担心。还要注意,不确定并不意味着可变。一旦通过初始化或分配对数组进行了绑定,给定实例的大小将从此点开始固定。