если я создам следующую структуру:
typedef struct node {
int a;
char b[100][15];
struct node *prev;
struct node *next;
} Scope;
Должен ли я использовать указатель для инициализации моего head_node? В настоящее время это моя функция инициализации:
Scope initScope() {
Scope head;
head.a = 1;
head.prev = NULL;
head.next = NULL;
return head;
}
В какой-то функции я бы сказал
Scope head = initScope();
Пока мне это кажется нормальным, но я не уверен, как создать новый узел. Я предполагаю, что мне понадобится указатель типа Scope. Мне пришлось бы выделить его размером Scope, а затем инициализировать его значения. Должен ли я делать то же самое при создании головы? Основной вопрос, на который я пытаюсь ответить, заключается в том, какова цель указателя здесь? Что, если бы в определении моей структуры я написал
*Scope
вместо
Scope
? Если мне нужно использовать указатели для создания узлов, то почему бы не сделать структуру указателем? Насколько я понимаю, указатели просто позволяют мне манипулировать памятью, так что же остается, когда я создаю узел и иду дальше?