У меня есть эта функция, которая проверяет, находятся ли узлы в связанном списке физически рядом друг с другом, байт с переменными start_byte
и end_byte
. Но моя функция сохраняет segfault, и я не уверен, почему, может ли кто-нибудь предложить помощь?Функция объединителя узлов связанного списка
void checkIfFreeTogether(void)
{
FREEPTR l =freelist;
FREEPTR f = freelist;
FREEPTR g =freelist;
int i = 0;
while(f->next!=NULL)
{
if(f->end_byte+1==f->next->start_byte)
{
cout << f << endl;
f->size = f->size + f->next->size;
cout << f << endl;
f->end_byte = f->next->end_byte;
cout << f << endl;
cout << f->next << endl;
f->next=f->next->next;
cout << f << endl;
cout << f->next << endl;
}
f=f->next;
}
}
здесь является выход этой конкретной функции, то couts используется для отладки и показывать значения
0x200583a8
0x200583a8
0x200583a8
0x20058438
0x200583a8
0
Segmentation fault (core dumped)