gpt4 book ai didi

c - 运行此代码时显示段错误错误

转载 作者:行者123 更新时间:2023-11-30 16:20:03 24 4
gpt4 key购买 nike

我写了插入功能使其正常工作,然后写了旋转功能(链表)。这段代码通过了一些测试用例,但是某些测试用例可能会失败,在我尝试运行此功能时显示分段错误错误码。

void rotate(struct node **head_ref, int k)
{
struct node *temp=*(head_ref);
struct node *t;
struct node *start;
start=*(head_ref);
while(k--)
{
t=temp;
temp=temp->next;
}
t->next=NULL;
*head_ref=temp;
while(temp->next!=NULL)
{
temp=temp->next;
}
temp->next=start;
}

最佳答案

如果具有extern函数,则必须验证每个参数。
您的情况head_ref可以为NULL,因此:

if (head_ref != NULL)
{
...
}


错误将在这里: while(k--),因为您尝试在(可能的)NULL上获取属性。
应该是 while(k-- && temp != NULL)

变量应该命名为变量,那么 k在做什么呢? ;)

附言如果您没有可见的修饰符(静态-私有,外部-公共),则默认情况下为外部函数。

关于c - 运行此代码时显示段错误错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55418154/

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