这个程序,编译器编译时候没有报错,运行时候为啥报错了。。。
#include<stdio.h>#include<malloc.h>struct list{ char data; list *lchild, *rchild;};list * creat(list * Q[]){ int ch; int front, rear; front = 1; rear = 0; list * root, * s; printf("输入第一个字符\n"); ch = getchar(); while(ch != '#') { s = NULL; if(ch != '@') { s = (list *) malloc(sizeof(list *)); s->data = ch; s->lchild = NULL; s->rchild = NULL; } rear ++; Q[rear] = s; if(rear == 1) root = s; else { if(s && Q[front]) if(rear % 2 == 0) Q[front]->lchild = s; else Q[front]->rchild = s; if(rear % 2 == 1) front ++; } printf("继续输入\n"); ch = getchar(); } return root; }void main(){ list * Q[5]; creat(Q); printf("dd");}