我在写c的时候运行程序是总是停止是什么原因?比如下面这个二叉树程序就在输入后停止,输入内容为123##4##5#6##

  
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>

typedef struct Node{
int val;
struct Node *lchild;
struct Node *rchild;
}*node;

void bitreeInit(node tree){//根据输入生成二叉树 测试数据123##4##5#6##
char ch;
scanf("%d",&ch);
if ( ch == '#' ){
tree = NULL;
}else{
tree=malloc(sizeof(node));
if(!tree){
printf("malloc failed..");
}else{
tree->val=ch;
bitreeInit(tree->lchild);
bitreeInit(tree->rchild);
}

}
// return tree;
}
//void preView(node tree){
// if(tree){
// printf("%d",tree->val);
// preView(tree->lchild);
// preView(tree->rchild);
// }
//}
void main(){
node tree;
printf("input node:");
bitreeInit(tree);
// preView(tree);
}
brayden
brayden
6577
编辑于2013-12-19
评论 (3)链接2013-12-19 
  • 0 支持
    目测一下 tree=malloc(sizeof(node)); 改为tree=malloc(sizeof(Node)); ? – brayden 2013-12-19
  • 0 支持
    @brayden 谢谢 这个问题解决了 是因为定义node的时候写成int了 而后面都用的是char – tsangint 2013-12-19
  • 0 支持
    @tsangint node这里是个指针, malloc(sizeof(node))只会分配指针大小的字节数, 我的系统上是4个字节 – brayden 2013-12-19
德问是一个专业的编程问答社区,请 登录注册 后再提交答案