求教一个c的指针问题
typedef struct node{char d; struct node *left , *right;}tnode;
void mktree(tnode **p)
{
*p=(tnode *) malloc(sizeof(tnode)))
.......
}
我不明白 *p=(tnode *) malloc(sizeof(tnode))) 该怎么理解
[解决办法]
比如main函数中有一个 tnode *pnode;
mktree(&pnode),就pnode的地址传入
*p=(tnode *) malloc(sizeof(tnode)))
*p是对 &pnode这个地址的解引用,其实也就是pnode
结果即是:pnode=malloc(sizeof(tnode))
也就是通过这个函数改变了实参pnode的值。