return使指针整数没有强制转换 - 二进制树

时间:2015-10-01 02:50:48

标签: c binary-search-tree

我正在为二进制树编写一个函数,它将使用unsigned int找到所需的节点。

我的问题是我收到警告“返回使得整数没有投射的指针”,这可能是非常简单的我错过了但我似乎无法找到它,请帮忙。

还有“return(* B) - > prod.prodID”是带警告的那个,谢谢。

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;
}

1 个答案:

答案 0 :(得分:0)

您必须返回 unsigned int((* B) - &gt; prod.prodID)的地址(* B) 因为你的返回类型是(** B)类型。  类似的东西:

if((*B)->prod.prodID == iden)
{
return (*B)->lchild;
//or
return (*B)->rchild;
}