#include<stdio.h>
#include<stdlib.h>
typedef struct //create a pointer structure
{
int data;
struct node *left;
struct node *right;
} node;
node *insert(node *root, int x);
//Insert Function
node *insert(node *root, int x) //Line 53
{
if(!root)
{
root = new_node(x);
return root;
}
if (root->data > x)
{
root->left = insert(root->left, x); //Line 63
}
else
{
root->right = insert(root->right, x); // Line 68
}
return root;
}
コンパイル中に次のエラーが発生します。
: 関数「挿入」内:
:63:3: 警告: 互換性のないポインター型から 'insert' の引数 1 を渡しています [デフォルトで有効]
:53:7: 注: 'struct node *' が必要ですが、引数の型は 'struct node *' です</p>
:63:14: 警告: 互換性のないポインター型からの代入 [デフォルトで有効]
:68:3: 警告: 互換性のないポインター型から 'insert' の引数 1 を渡しています [デフォルトで有効]
:53:7: 注: 'struct node *' が必要ですが、引数の型は 'struct node *' です</p>
:68:15: 警告: 互換性のないポインター型からの代入 [デフォルトで有効]
- 挿入関数の最初の引数が、渡したものと互換性がないのはなぜですか?
- 「構造体ポインタ」にポインタを割り当てるにはどうすればよいですか?