将结构体的内容写入到文件中出现Bus error:10这个异常,怎么解决
将结构体的内容写入到文件中出现Bus error:10这个错误,如何解决?
#include <stdio.h>
#include <stdlib.h>
struct st{
char name[10];
char age[10];
char sex[10];
float score;
};
int main()
{
struct st* p;
FILE* p1,*p2;
struct st* s[4];
p=s[0];
int i=0;
p1=fopen("input.txt","r");
p2=fopen("output.txt","w");
for(i=0;i<4;i++)fread(p++,sizeof(struct st),1,p1);
p=p-4;
for(i=0;i<4;i++)fwrite(p++,sizeof(struct st),1,p2);
fclose(p2);
fclose(p1);
return 0;
}
写代码之前建立的文件input.txt:
zhangsan 20 man 89.0
lisi 23 man 78.0
wangwu 23 woman 100.0
liqiu 34 woman 90.0
编译代码没有问题,但是运行的时候出现: Bus error 10这个错误,请牛人指导...........
------解决方案--------------------
#include <stdio.h>
#include <stdlib.h>
struct st{
char name[10];
char age[10];
char sex[10];
float score;
};
int main()
{
struct st* p;
FILE* p1,*p2;
struct st* s[4];
p=s[0];
int i=0;
p1=fopen("input.txt","r");
p2=fopen("output.txt","w");
for(i=0;i<4;i++)fread(p++,sizeof(struct st),1,p1);
p=p-4;
for(i=0;i<4;i++)fwrite(p++,sizeof(struct st),1,p2);
fclose(p2);
fclose(p1);
return 0;
}
写代码之前建立的文件input.txt:
zhangsan 20 man 89.0
lisi 23 man 78.0
wangwu 23 woman 100.0
liqiu 34 woman 90.0
编译代码没有问题,但是运行的时候出现: Bus error 10这个错误,请牛人指导...........
------解决方案--------------------
struct st* s[4]; //没有必要定义成指针数组!
// 这样就行了
struct st s[4];
p = s; //或者 p = &s[0];