Я читал об этом некоторое время, и я не уверен, что нашел хороший ответ.
Я пытаюсь настроить массив из 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!"
// ...