我想这样做:
typedef struct
{
CGPoint vertices[];
NSUInteger vertexCount;
} Polygon;
但它说Field has incomplete type CGPoint []
。
答案 0 :(得分:4)
您需要做以下两件事之一:
malloc
和free
数组。更好的选择是不使用struct
而是创建完整的类。然后,您可以添加方法和属性,以及使内存管理更容易。您正在使用Objective-C。利用该语言的面向对象方面。添加一种方法来计算周长和面积等。将逻辑放在它所属的位置。
答案 1 :(得分:0)
设置数组大小CGPoint vertices[count];
答案 2 :(得分:0)
您不希望结构的每个元素都有唯一的名称吗?如果你只是想要一个CGPoint的数字顺序,能够计算它们中的多少,你可以通过在NSArray或NSMutableArray(当然存储为NSValue)中推送它们来提供更好的服务
结构的重点是通过描述性名称轻松访问值,即:
typedef struct {
CGPoint helpfulAndDescriptiveNameOne;
CGPoint helpfulAndDescriptiveNameTwoWhichIsDifferentThanTheOtherName;
etc...
NSUInteger vertexCount;
}
例如,CGRect只是一个由四个不同的CGFloats组成的结构,每个CGFloats都具有描述性和有用的命名:
typedef {
CGFloat x;
CGFloat y;
CGFloat width;
CGFloat height;
} CGRect;