gpt4 book ai didi

c - 如果满足条件如何返回或退出函数

转载 作者:行者123 更新时间:2023-11-30 19:50:52 26 4
gpt4 key购买 nike

我是C语言新手,正在尝试在C中编写一个双链表。如果链表外的索引计数,我想跳出或返回空值,但不退出整个程序。只是为了打印错误并返回 Null 或用户会识别出范围之外的内容。不知道C能不能做到。这是我的代码的一部分。 free_node功能是返回节点的数据并释放节点空间。我只是想知道我可以对这个 pop 函数做些什么来处理超出范围的问题。

谢谢

typedef struct node{
void *data;
struct node *next,*prev,*head,*tail;
}Node;

typedef Node *List;

Node pop_node(List plist,long index){
Node *pnode;
pnode=direct_to_head(plist)->next;
if(index>list_count(plist)){
fprintf(stderr, "index out of link list scope.");
return;
}
while (pnode->next!=NULL && index-->0) {
pnode=pnode->next;
}

return free_node(pnode);
}

最佳答案

I want to jump out of or return null value ... I don't know if C can do it.

简短的回答是

作为设计者,您已决定函数 pop_node 应返回 Node 类型的对象(又名 struct node)。这意味着代码应始终返回Node类型的对象。 C 不允许您突然返回另一种类型。因此,像 return NULL; 这样的事情将不会被允许。

I just want to know what can I do to this pop function that I can deal with out of scope problem.

您可以更改函数签名以返回指向节点的指针,并将复制/释放留给调用者。在这种情况下,您可以使用 NULL 作为指示“没有可用对象”的值。

关于c - 如果满足条件如何返回或退出函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54862296/

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