我对指针和 C 的想法相对较新,所以如果这是一个非常简单的问题,我深表歉意。我正在尝试从创建的内存中释放一个单链表。单个列表创建得很好,但是我无法从内存中释放它,我遇到了分段错误。有什么想法我哪里出错了吗?我需要为 freelist 和 freenode 提供单独的方法。Avail 是一个全局指针变量,它是我确信可以工作的代码的一部分。问题存在于免费列表中,我只是不确定在哪里。
void freelist(olnode **list) {
olnode *ptr = *list;
while (*list != NULL) {
ptr = *list
freenode(&ptr);
ptr = ptr->next;
}
}
void freenode(olnode **ptr) {
if(*ptr != NULL) {
(*ptr)->next = avail;
avail = *ptr;
*ptr = NULL:
}
}