cfy137000 发表于 2014-7-22 22:14:21

单步调试没问题 运行就不行

我刚学到二叉树的部分,自己用迭代写了个遍历的程序,很奇怪的是我 开始执行(不调试)就会告诉我 发生了未处理的win32异常,但是如果我用单步调试的话就会一切正常的把程序跑完,求帮助;
一下是代码
#include <stdio.h>
#include <malloc.h>
typedef char ElemType;

typedef struct BTree
{
    ElemType data;
    struct BTree *lchild;
    struct BTree *rchild;
}BNode,*BTree;
#define LEN sizeof(BTree)

void TravelTree(BTree L);
int main(void)
{
    BTree A;
    A = (BTree)malloc(LEN);
    BTree B;
    B= (BTree)malloc(LEN);
    BTree C;
    C = (BTree)malloc(LEN);
    BTree D;
    D = (BTree)malloc(LEN);
    BTree E;
    E = (BTree)malloc(LEN);
    BTree F;
    F = (BTree)malloc(LEN);
    BTree G;
    G = (BTree)malloc(LEN);
    A->data = 'A';
    B->data = 'B';
    C->data = 'C';
    D->data = 'D';
    E->data = 'E';
    F->data = 'F';
    G->data = 'G';
    A->lchild = B;
    A->rchild = C;
    B->lchild = D;
    B->rchild = E;
    C->lchild = F;
    C->rchild = G;
    D->lchild = D->rchild = E->lchild = E->rchild = F->lchild = F->rchild = G->lchild = G->rchild = NULL;
    printf("%c", C->rchild->data);
    printf("\n\n");
    TravelTree(A);
    return 0;
   
}
void TravelTree(BTree L)
{
    printf("%c", L->data);
    BTree p = L->lchild;
    BTree q = L->rchild;
    if (p != NULL)
    {
      TravelTree(p);
    }
    if (q != NULL)
    {
      TravelTree(q);
    }
    return;
}

cfy137000 发表于 2014-7-23 10:55:25

:cry

ravenhu13 发表于 2014-7-23 11:00:12

typedef struct BTree
{
    ElemType data;
    BTree *lchild;
    BTree *rchild;
}BNode,*BTree;

cfy137000 发表于 2014-7-23 17:53:02

ravenhu13 发表于 2014-7-23 11:00


不行啊,这样编译都过不去呀
页: [1]
查看完整版本: 单步调试没问题 运行就不行