|
15鱼币
本帖最后由 骇客king 于 2015-8-25 16:58 编辑
GreateBiTree(BiTree T)
{
char c;
scanf("%c",&c);
if(c==' ')
{
T=NULL;
}
else
{
T=(BiTree)malloc(sizeof(BiTrNode));
T->data=c;
GreateBiTree(T->lc);
GreateBiTree(T->rc);
}
}
红色的没有理解啊,为什么这样做不行,为什么要用到双重指针呢?
个人理解为是因为需要改变指针的内容,单指针就不能改变内容了吗?
typedef char ElemType;
typedef struct BiTrNode
{
ElemType data;
struct BiTrNode *lc ,*rc;
} BiTrNode,*BiTree;
结构在这里 |
最佳答案
查看完整内容
一句话 想通过函数的参数 动态申请内存
要么传递二级指针 要么传递一级指针的引用(引用底层也是利用指针实现 一个道理)
你传递一个一级指针进去 参数自动拷贝了一个指针的临时变量 内部是代为为这个临时变量申请了内存 不过等函数体结束 临时变量消失 外部的指针并没有获得内存 并且还造成了内存泄露
|