c - 错误:控制可能到达非空函数的末尾,Xcode
问题描述
我知道有很多关于我的问题的问题和答案,
但那些没有帮助,因为有不同的情况。
这是我的代码。
BinNode *Search(BinNode *p, const Member *x)
{
int cond;
if(p == NULL)
return NULL;
else if((cond = MemberNoCmp(x, &p->data)) == 0)
return p;
else if(cond < 0)
Search(p->left, x);
else
Search(p->right, x);
}
和错误信息。
控制可能到达非空函数的结尾
我认为我的功能会很好地执行,我认为这是一条重要的线。
if(p == NULL)
return NULL;
else if((cond = MemberNoCmp(x, &p->data)) == 0)
return p;
我认为这最终将无条件返回 NULL 或 p 。
我错过了什么问题?
解决方案
在“非void
”函数中,您必须在可能采用的每个分支上返回一些内容。换句话说:
BinNode *Search(BinNode *p, const Member *x)
{
int cond;
if(p == NULL)
return NULL;
else if((cond = MemberNoCmp(x, &p->data)) == 0)
return p;
else if(cond < 0)
return Search(p->left, x);
else
return Search(p->right, x);
}
推荐阅读
- python - 如何更改 LDA 中的默认 number_words
- javafx - SelectionMode.MULTIPLE 与 TAB 导航到下一个单元格
- css - Bootstrap 4:列固定宽度+卡片页脚中的其余行
- asp.net - 使用 asp.net 的批量电子邮件发送问题
- tensorflow - stride=2 的 2x2 deconv 内核如何工作?
- javascript - 如何转换从时间戳创建的日期为 yyyy-MM-dd 格式
- ibm-cloud - 在 Watson IoT 中使用 IBM Cloud 获取其他设备令牌值
- codeigniter - 如何在数据库中使用临时表 slug?
- amazon-web-services - 通过 Cloudformation 将多个安全组传递到网络接口时出错
- vba - 使用 PasteSpecial 粘贴值而不是公式 - VBANewbie