Я возвращаюсь на C для чего-то, но у меня возникают проблемы с запоминанием того, как работает это управление памятью. Я хотел бы иметь указатель на массив указателей на структуры.
Скажем, у меня есть:
struct Test {
int data;
};
Затем массив:
struct Test **array1;
Это правильно? Моя проблема работает с этим. Таким образом, каждый указатель в массиве указывает на то, что выделяется отдельно. Но я думаю, что мне нужно сделать это сначала:
array1 = malloc(MAX * sizeof(struct Test *));
У меня возникли проблемы с пониманием вышеизложенного. Нужно ли мне это делать и зачем мне это нужно? В частности, что означает выделение памяти для указателей, если я собираюсь выделить память для каждой вещи, на которую указывает указатель?
Скажем, теперь у меня есть указатель на массив указателей на структуры. Теперь я хочу, чтобы он указывал на тот же массив, который я создал ранее.
struct Test **array2;
Мне нужно выделить место для указателей, как я сделал выше, или я могу просто сделать:
array2 = array1