C言語で外部ファイルからを読み込みそのデータに基づいて2分探索木を作成しようとしているのですが、ノードの左右のポインタにアドレスが代入されません。

何が違っているのでしょうか?

struct member{
    int num;
    char name[13];
    char profile[70];
    struct member *left;
    struct member *right;
};

typedef struct member tree_mbr;

do{
        tree_mbr newt;
        if ((check = fscanf(fp, "%d %s %s", &newt.num, newt.name, newt.profile)) != EOF){
            newt.left = NULL;
            newt.right = NULL;      
            start = tree(newt,start);
        }
    }while(check != EOF);

tree_mbr *tree(tree_mbr key, tree_mbr *t)
{
   if(t == NULL) {  
       t = (tree_mbr *) malloc(sizeof(tree_mbr))
       *t = key;
   }else if(key.num < t->num){
       tree(key, t->left);
   }else if(key.num > t->num){
       tree(key, t->right);
   }
    return t;
}

void print_tree(tree_mbr *t)
{

    static int c = 1;


    if(t != NULL){
        print_tree(t->left);
        printf("%d %s %s\n", t->num, t->name, t->profile);
        print_tree(t->right);
    }


}