[問題] binary_tree裡free的問題
static struct node{
char data;
node *lchind, *rchild;
};
static node *createatree(node *tree)
{
char item;
tree = (node*)malloc(sizeof(node*));
cout<< "請輸入字元" <<endl;
cin >> item;
if(item =='t')
tree = NULL;
else
{
tree->data = item;
tree->lchind = createatree(tree->lchind);
tree->rchild = createatree(tree->rchild);
}
return tree;
}
static void destroy(node *tree)
{
if(tree)
{
destroy(tree->lchind);
destroy(tree->rchild);
free(tree);
}
}
int main()
{
struct node *tree = NULL;
tree = createatree(tree);
destroy(tree);
return 0;
}
////////////程式分隔線//////////////////
我寫了一個可以讓使用者輸入的tree,輸入t時為null,並用前序排列
但是在free的函數上出了問題(爆掉跳出來了)
我逐行的跑進去,確定它是指到葉子的時候才free的(tree左右都是null)
想請問code的問題在哪裡??
謝謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.25.105
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1409821468.A.C34.html
推
09/04 17:24, , 1F
09/04 17:24, 1F
推
09/04 17:28, , 2F
09/04 17:28, 2F
→
09/04 17:30, , 3F
09/04 17:30, 3F
推
09/04 17:40, , 4F
09/04 17:40, 4F
→
09/04 17:53, , 5F
09/04 17:53, 5F