Я пытаюсь создать связанный список узлов, внутри которых есть указатель структуры сотрудников. Я получаю ошибку сегментации, когда пытаюсь добавить новый узел в конец. Ниже приведена моя функция добавления узла в конец списка.
void addToEnd(node_t **head, employee_t *employee){
node_t *current_node = *head;
while(current_node->next != NULL){
current_node = current_node->next;
}
current_node->next = (node_t*)malloc(sizeof(node_t));
current_node->next->empInfo = employee;
current_node->next->next = NULL;
}
Вот код, который я передаю в функцию:
int main (void) {
setvbuf(stdout, NULL, _IONBF, 0);
setvbuf(stderr, NULL, _IONBF, 0);
employee_t *empPtr1, emp1,*empPtr2, emp2;
empPtr1 = &emp1;
empPtr2 = &emp2;
node_t head;
head.next = NULL:
node_t *headPtr;
node_t **headPtr2;
headPtr2 = &headPtr;
headPtr = &head;
emp1.firstName = (char *) malloc(sizeof(char)*10);
emp1.lastName = (char *) malloc(sizeof(char)*10);
emp2.firstName = (char *) malloc(sizeof(char)*10);
emp2.lastName = (char *) malloc(sizeof(char)*10);
printf("Please enter the first name of the first employee you'd like to add:");
scanf("%s", empPtr1->firstName);
printf("Please enter the last name of the first employee you'd like to add:");
scanf("%s", empPtr1->lastName);
printf("Please enter the first name of the second employee you'd like to add:");
scanf("%s", empPtr2->firstName);
printf("Please enter the last name of the second employee you'd like to add:");
scanf("%s", empPtr2->lastName);
addToEnd(headPtr2, empPtr1);
addToEnd(headPtr2, empPtr2);
...
Если у кого-то есть идеи, почему эта функция дает мне ошибку в сегменте, это было бы очень ценно, так как я просмотрел здесь множество тем и не нашел ничего подобного.