只是想知道我是否犯了一些愚蠢的错误或它的Xcode。
我有一个struct的typedef,现在在比较同一类型的两个变量之间的指针时,在Xcode中创建一个不兼容的指针,而不是在linux中。请问任何人,请告诉我这里发生的事情。
typedef struct Node
{
// treeNode has a hidden Address
int size;
struct treeNode *left;
struct treeNode *right;
} treeNode;
treeNode* FindMin(treeNode *node)
{
if(node==NULL)
{
return node;
}
if(node->left)
return FindMin(node->left); // Error :- treeNode is incompatible with Node
else
return node;
}
// If I type cast it .. Show no sign of error..
treeNode* FindMin(treeNode *node)
{
if(node==NULL)
{
/* There is no element in the tree */
return node;
}
if(node->left)
return FindMin((struct Node *)node->left); // No Error here
else
return node;
}
答案 0 :(得分:1)
像这样宣布你的treenode
typedef struct treeNode
{...
而不是
typedef struct Node
{...
您正在访问下面的声明struct treeNode
中的struct treeNode *left;
,但声明结构为struct Node