Я написал функцию для реализации сортировки слиянием в односвязном списке, где каждый элемент имеет целое число и следующий указатель.Одна из функций splitlist используется для разделения данного связанного списка на два связанных списка
void splitList(struct node* source, struct node** frontRef, struct node** backRef)
{
struct node *s, *f;
s = source;
f = s->next;
while(f && f->next)
{
s = s->next;
f = f->next->next;
}
*frontRef = source;
f = s->next;
s->next = NULL;
*backRef = f;
}
Здесь source - указатель на данный связанный список, а frontRef и backRef - ссылки на указатель, которые должны быть назначены через этофункция.fronRef должен ссылаться на первый связанный список, а backreef должен ссылаться на второй.Этот код дает ошибку сегментации, когда строки
* frontRef = source;* backRef = f;
заменены на
frontRef = & source;backRef = & f;
Я не могу понять причину этого, поскольку оба набора операторов эквивалентны друг другу