Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C return生成不带强制转换的指针整数-二叉树_C_Binary Search Tree - Fatal编程技术网

C return生成不带强制转换的指针整数-二叉树

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

我正在为二叉树编写一个函数,该函数将使用无符号int查找所需的节点

我的问题是我得到了警告“return从整数生成指针而不进行强制转换”,这可能是我错过的一些非常简单的东西,但我似乎找不到它,请帮助

另外,“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;
}
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
不是同一类型,但都是返回值。