主题:求助 怎么会是这个运行结果
][em10][em10][em10][em10][em10][em10][em10][em10][em10]
[color=0000FF][size=4]我想问下哪出错了
{init()和read()没有调用过}
运行时scanf()会跳过;
运行两次之后会提示(NULL POINTER ASSIGNMENT)[/size][/color]
[size=3]#include <stdio.h>
#include <dos.h>
union REGS regs;
struct st
{
char name[7];
int time;
}chuji,zhongji,gaoji;
void savefile(void);
void openfile(void);
int init(int xmi,int xma,int ymi,int yma)
{
int retcode;
regs.x.ax=0;
int86(51,®s,®s);
retcode=regs.x.ax;
if(retcode==0)
return 0;
regs.x.ax=7;
regs.x.cx=xmi;
regs.x.dx=xma;
int86(51,®s,®s);
regs.x.ax=8;
regs.x.cx=ymi;
regs.x.dx=yma;
int86(51,®s,®s);
return retcode;
}
void read(int *mx,int *my,int *mbutt)
{
int xx0=*mx,yy0=*my,but0=0,mb;
int xnew, ynew;
do {
regs.x.ax=3;
int86(51,®s,®s);
xnew=regs.x.cx;
ynew=regs.x.dx;
*mbutt=regs.x.bx;
}while(xnew==xx0 && ynew==yy0 && *mbutt == but0 );
*mx=xnew;
*my=ynew;
}
void savefile(void)
{
FILE *fp;
if((fp = fopen("saolei.xy","wb")) == NULL)
exit(1);
fwrite(&chuji,sizeof(struct st),1,fp);
fwrite(&zhongji,sizeof(struct st),1,fp);
fwrite(&gaoji,sizeof(struct st),1,fp);
fclose(fp);
}
void openfile(void)
{
FILE *fp;
if((fp = fopen("saolei.xy","rb"))==NULL)
{fclose(fp);return;}
if(fread(&chuji,sizeof(struct st),1,fp)!=1)
{fclose(fp);return;}
if(fread(&zhongji,sizeof(struct st),1,fp)!=1)
{fclose(fp);return;}
if(fread(&gaoji,sizeof(struct st),1,fp)!=1)
{}
fclose(fp);
}
void main(void)
{
chuji.time = 999;
zhongji.time = 999;
gaoji.time = 999;
openfile();
printf("%6d%6d%6d\n",
chuji.time,zhongji.time,gaoji.time);
scanf("%d %d %d",
&chuji.time,&zhongji.time,&gaoji.time);
savefile();
} [/size]
[color=FF0000][size=5] 望高手赐教[/size][/color]