Я пытаюсь написать функцию, которая освободит все узлы (сегменты) связанного списка.Когда я пытаюсь запустить следующий код, я получаю ошибку 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