C return生成不带强制转换的指针整数-二叉树
我正在为二叉树编写一个函数,该函数将使用无符号int查找所需的节点 我的问题是我得到了警告“return从整数生成指针而不进行强制转换”,这可能是我错过的一些非常简单的东西,但我似乎找不到它,请帮助 另外,“return(*B)->prod.prodID”是带有警告的,谢谢C return生成不带强制转换的指针整数-二叉树,c,binary-search-tree,C,Binary Search Tree,我正在为二叉树编写一个函数,该函数将使用无符号int查找所需的节点 我的问题是我得到了警告“return从整数生成指针而不进行强制转换”,这可能是我错过的一些非常简单的东西,但我似乎找不到它,请帮助 另外,“return(*B)->prod.prodID”是带有警告的,谢谢 struct BST** nodeFinder(struct BST **B,unsigned int iden) { if((*B)->prod.prodID == iden){ retur
struct BST** nodeFinder(struct BST **B,unsigned int iden)
{
if((*B)->prod.prodID == iden){
return (*B)->prod.prodID;
}
if(iden < (*B)->prod.prodID){
nodeFinder(&(*B)->lchild,iden);
}else{
nodeFinder(&(*B)->rchild,iden);
}
(*B)->rchild = NULL;
return &(*B)->rchild;
}
struct BST**nodeFinder(struct BST**B,unsigned int iden)
{
如果((*B)->prod.prodID==iden){
返回(*B)->prod.prodID;
}
如果(iden<(*B)->prod.prodID){
nodeFinder(&(*B)->lchild,iden);
}否则{
nodeFinder(&(*B)->rchild,iden);
}
(*B)->rchild=NULL;
返回&(*B)->rchild;
}
您必须返回(*B)的地址安装的未签名整数((*B)->prod.prodID)
因为您的返回类型是(**B)类型。
比如:
if((*B)->prod.prodID == iden)
{
return (*B)->lchild;
//or
return (*B)->rchild;
}
返回正确的东西,而不是
(*B)->prod.prodID
,后者可能具有类型unsigned int
。如何定义BST
?这个函数应该做什么?在return语句中使用&
几乎肯定是错误的。@iharob我不这么认为。它可能会返回以后要修改的位置和&(*B)->rchild
不是同一类型,但都是返回值。