C - Вдвойне связанный список добавления нового узла дает ошибку во время выполнения
Итак, у меня есть следующий код для двусвязного списка, который хорошо работал для односвязного списка. Когда я пытаюсь добавить новый узел, используя функцию addFirst в начале узла, он выдает ошибку во время выполнения, когда у меня есть одна строка (закомментированная). В противном случае функция работает для односвязного списка и не выдает ошибку без этой строки.
void addFirst(DblList *lstPtr, int data)
{
Node *newNodePtr = (Node *) malloc(sizeof (Node));
if (newNodePtr == NULL) {
printf("Unable to allocate new node\n");
return;
}
newNodePtr->data = data;
newNodePtr->next = NULL;
newNodePtr->prev = NULL;
if(lstPtr->nodeCount == 0){
lstPtr->head = newNodePtr;
lstPtr->tail = newNodePtr;
}
else{
newNodePtr->next = lstPtr->head;
lstPtr->head->prev = newNodePtr; //this is the toubling line
lstPtr->head = newNodePtr;
}
lstPtr->nodeCount++;
}
Вот пользовательские типы
typedef struct Node {
int data;
struct Node *next;
struct Node *prev;
} Node;
typedef struct DblList {
struct Node *head;
struct Node *tail;
int nodeCount;
} DblList;
void initList(DblList *lstPtr)
{
lstPtr->head = NULL;
lstPtr->tail = NULL;
int nodeCount = 0;
}
Edit-Кажется, это ошибка сегментации, но я не уверен.