Проблема с указателем в ф-ии
Привет всем, нарвался на одну проблемку. Есть ф-я в аргументах которой передается указатель на структуру, внутри ф-ии выделяется память и происходит выход из нее. Но почему-то когда передаю в ф-ю указатель, при выходе из нее, этот указатель не указывает на выделенную область памяти. Привожу пример кода: структура
struct node
{
int key;
struct node* left;
struct node* right;
unsigned char height;
};
сама ф-я
void insert(struct node *p, int k)
{
if( p == NULL ) {
p = malloc(sizeof(struct node));
if(p == NULL) {
printf("Error allocate memory!\n");
exit(0);
}
p->key = k;
p->left = p->right = NULL;
p->height = 0;
return;
}
if( k < p->key )
insert(p->left,k);
else
insert(p->right,k);
balance(p);
}
и вызов из main
int main()
{
struct node *tree;
insert(tree,4);
assert(tree != NULL);
}