Я создаю связанный список в c и не могу добавить другой узел после 4-го.Когда я использую free (node), я получаю ошибку: free (): неверный указатель Aborted (core dumped). Однако, если я удаляю объявление free (node), я получаю ошибку сегментации.Я предполагаю, что это какая-то проблема с памятью, но я не могу найти источник проблемы.
Используемые структуры:
struct node
{
int id;
struct process * p;
struct node * next;
};
struct queue
{
struct node * head;
struct node * tail;
};
Функция постановки в очередь, которая должна добавитьузел к списку:
void enqueue(struct queue * q, struct node * newNode)
{
if(q->tail == NULL)
{
q->head = q->tail = newNode;
return;
}
q->tail = q->tail->next = newNode;
// free statement useful?
free(newNode);
}