gpt4 book ai didi

c - macOS 上的段错误,但 Ubuntu 上没有

转载 作者:行者123 更新时间:2023-12-04 18:36:28 26 4
gpt4 key购买 nike

我正在尝试在我的代码中释放一个链接列表。当我尝试释放节点并打印该地址时,它会出现段错误。但如果我在 Ubuntu 上尝试,它可以正常工作。我的代码是这样的:

void Free(struct node* head) {
while(head !=NULL){
free(head);
head=head->next;
}
}

我的结构是:
struct node {
int data;
struct node* next;
};

为什么它不能在 macOS 上运行?

最佳答案

释放指针后不能取消引用它。您需要保存head->next在你免费之前head .

void Free(struct node* head) {
while(head !=NULL){
node *next = head->next;
free(head);
head=next;
}
}

关于c - macOS 上的段错误,但 Ubuntu 上没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60580000/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com