二分探索木のコードを実装しようとしていました。問題は次のコードが機能しないことですが、insert(struct bst** node, data) のような挿入関数にダブル ポインターを渡すと機能します。単一のポインターを渡すことでも機能するはずだと思います。ここでエラーが何であるかを誰でも説明できますか?
void insert(struct bst* node, int data )
{
if (node == NULL)
{
printf("here with %d\n",data);
node = (struct bst*)malloc(sizeof(struct bst));
node->data = data;
node->left = NULL;
node->right = NULL;
}
if(data < node->data)
{
insert(node->left,data);
}
else if(data > node->data)
{
insert(node->right,data);
}
}