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