回 帖 发 新 帖 刷新版面

主题:真的是内存问题吗???请教一下各位。。。。

我运行的程序如下:
#include"stdio.h"
struct exam
{float daolun;
 float cyuyan;
 float math;
 float english;
 float sport;
};
 struct student
 {char num;
  char name[10];
  char sex;
  int age;
  struct exam mark;
 }stud1[2],stud2[2];
void inputdata()
 {
   int i;
   printf("input the stud1 data.\nnum  name sex  age daolun cyuyan math english sport\n");
  for(i=0;i<=2;i++)
  scanf("%c%s%s%d%f%f%f%f%f",&stud1[i].num,stud1[i].name,stud1[i].sex,&stud1   [i].mark.daolun,&stud1[i].mark.cyuyan,
          &stud1[i].mark.math,&stud1[i].mark.english,&stud1[i].mark.sport);
 
 }
 void outputdata()
 {int i;
  for(i=0;i<2;i++)
 printf("%d,%s,%s,%d,%d,%d,%d,%d,%d\n",stud1[i].num,stud1[i].name,stud1[i].sex,stud1[i].mark.daolun,stud1[i].mark.cyuyan,
          stud1[i].mark.math,stud1[i].mark.english,stud1[i].mark.sport);
 }
 void datawrite()
  { FILE*fp;
       int i;
       if((fp=fopen("stud.dat","wb"))==NULL)
        { printf("cannot open file\n");
        return;
        }
 for(i=0;i<=2;i++)
  if(fwrite(&stud1[i],sizeof(struct student),1,fp))
    printf("file write error\n");
    fclose(fp);
  }
  void dataread()
   {FILE *fp;
       int i;
       if((fp=fopen("stud.dat","r"))==NULL)
        {printf("can not open file\n");
            return;
        }    
    for(i=0;i<=2;i++)
     fread(&stud2[i],sizeof(struct student),1,fp);
     

   }
void main()
{ char ch ;
    printf("****************menu****************\n");
    printf("       1.input data.\n");
    printf("       2.write data to file.\n");
    printf("       3.read data from file.\n");
    printf("       4.output data.\n");
    printf("       5.exist.\n");
    printf("************************************\n");
    printf("input your choice number,please!\n");
 ch=getchar();
 
switch(ch)
 {case '1': inputdata();break;
  case '2': datawrite();break;
  case '3': dataread();break;
  case '4': outputdata();break;
  case '5': break;
  default: printf("error.\n");
 }
}
   运行之后,当我输入第一个学生[color=00FFFF](本程序是要输入二个学生的数据的)[/color]的数据之后[color=00FF00](还差一个学生的数据还未曾输入),[/color]回车就出现了以下的问题:
   [color=FF0000]TempFile.exe-应用程序出错误[/color]
   [color=FF00FF]“ox00402874"指令引用 的“ox00000000”内存。该内存内存不能为“Written".[/color]
   请问一下是我的计算机出问题了,还是我的程序出的问题呢?[em18]

回复列表 (共1个回复)

沙发

显然是你的程序里面有问题,是不是有对空指针写的指令你自己好好查查,注意查看每条对指针(数组)写访问的地方都要看

我来回复

您尚未登录,请登录后再回复。点此登录或注册