首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

扩展先序法建立二叉树不用二重指针为什么不行?解决思路

2012-04-06 
扩展先序法建立二叉树不用二重指针为什么不行?struct bitree{char databitree *lchildbitree *rchild}

扩展先序法建立二叉树不用二重指针为什么不行?

struct bitree
{
char data;
bitree *lchild;
bitree *rchild;
};
void creat(bitree **bt)
{
char ch;
ch=getchar();
if(ch=='.')
*bt=NULL;
else
{
(*bt)=new bitree;
(*bt)->data=ch;
creat(&((*bt)->lchild));
creat(&((*bt)->rchild));
}
}

如果形参不用二重指针这个二叉树好像就不能返回到主函数中。。。求高手指点。。。


[解决办法]
这个是你的基础的问题了,哥哥。在c中不存在引用,那么所有的参数传参的时候,都会发生拷贝,那么你分配内存的时候,把分配得到的那个地址放到了一个局部指针中了,那么返回后,由于你没有得到那个局部指针保存的值,那么虽然堆上的内存还未被销毁,但是你找不到了。

热点排行