我已经阅读了一段时间,但我不确定我是否找到了一个好的答案。
我正在尝试设置一个由 92 个结构组成的数组。它是固定长度,不会改变,因为它实际上是一个查找表。我认为最好的方法是先分配内存,calloc
然后加载数据。
但是经过一些阅读,我看到很多人直接分配内存而没有calloc
或malloc
像这样
myStruct myData[92] = { {1,2}, {3,4}, ....};
我的第一个问题是动态分配内存是否更好?我的理解是这是一个更好的解决方案。特别是如果数据不一定会一直被使用。
我的第二个问题是关于初始化数据。我读过我可以使用初始化结构,... = {....};
但编译器不接受。
这是我到目前为止的代码:
typedef struct {
int a;
int b;
} myStruct;
@implementation MyClass
static myStruct *myData;
-(id) init {
// ...
myData = (myStruct *) calloc(92, sizeof(myStruct));
myData[0] = {1,2}; // <=== Error ! Compiler says "Expected expression!"
// ...