一些关于C文件操作的疑问

来源:百度知道 编辑:UC知道 时间:2024/05/06 05:04:48
FILE *CreateTREE(TREE &position,FILE *fp){
TREE mid=new NODE;
fread(mid,sizeof(NODE),1,fp);
if(mid->quz[0]=='#') {delete mid;return fp+1;}
else{
position=new NODE;
sprintf(position->quz,"%s",mid->quz);
sprintf(position->answer,"%s",mid->answer);
delete mid;
fp=CreateTREE(position->lchild,fp+1);
fp=CreateTREE(position->rchild,fp);
}
}

以上是本人想用文件中一存储的数据来建立一个二叉树,这是其中一个实现的算法,但是我通过了DEVCPP编译,就是一运行就出现段异常的提示,请问这是什么原因?在线等。。。
恩,有个struct NODE{
char quz[20];
char answer[20];
NODE *lchild,

我想应该是这样的吧
while{
scanf("%c",&a);
if(a==...) { ... printf();}
elseif(a==...) { ... printf();}
}

看不出有什么错误。。。
{delete mid;return fp+1;} 分开写试试
{
delete mid;
return fp+1;
}

缺少对象

FILE *CreateTREE(TREE &position,FILE *fp){
TREE mid=new NODE;
fread(mid,sizeof(NODE),1,fp);
if(mid->quz[0]=='#') {delete mid;return fp+1;}
else{
position=new NODE;
sprintf(position->quz,"%s",mid->quz);
sprintf(position->answer,"%s",mid->answer);
delete mid;
fp=CreateTREE(position->lchild,fp+1);
fp=CreateTREE(position->rchild,fp);
}
}

以上是本人想用文件中一存储的数据来建立一个二叉树,这是其中一个实现的算法,但是我通过了DEVCPP编译,就是一运行就出现段异常的提示,请问这是什么原因?在线等。。。
问题补充:恩,有个struct NODE{
char quz[20];
char answer[20];
NODE *lchild,*rchild;
};
typedef NODE *TREE;
而且我还发现老是说那段内存不能写入,那既然不能写入又为什么要把段地址分配到那儿去呢?晕~~ <