Проблема с освобождением памяти связанных списков - PullRequest
0 голосов
/ 24 мая 2019

Я пытаюсь написать функцию, которая освободит все узлы (сегменты) связанного списка.Когда я пытаюсь запустить следующий код, я получаю ошибку malloc, хотя я не уверен, почему, поскольку я думаю, что освобождается правильно.Спасибо за любые идеи.

typedef struct bucket bucket;
struct bucket {
  char *string;
  unsigned long int hash;
  bucket *next;
};

void bucket_free(bucket *b)
{
  if(b == NULL){
    free(b);
  }
  else{
    free(b->string);
    bucket_free(b->next);
    free(b);
  }
}

Когда я запускаю этот код, я получаю:

a.out(58188,0x7fff943f7380) malloc: *** error for object 0x106ec4fa6: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...