我在这里有这个简单的getNode()
函数。现在,假设用户在索引处调用的节点大于链表本身的长度。我该如何处理这样的错误并返回一些内容?
NODE* getNode(NODE* start, int index)
{
int i;
for(i = 0; i < index; i++)
{
start = start -> next;
}
return start;
}
答案 0 :(得分:4)
通常您会返回NULL
。有些库具有函数声明,如:NODE *getNode(NODE *start, int index, int *status);
,如果出现错误,则设置状态代码。
您可以执行以下操作:
NODE *getNode(NODE *start, int index, int *status)
{
// status of 1 means node not found
*status = 1;
// ...
return NULL;
}
// ...
int status = 0;
NODE *myNode = getNode(nodeList, 10, &status);
if (!myNode && 1 == status) {
printf("Not found!\n");
}