该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
请教高手:为什么我写c程序时候;只要遇到fwrite,fread,fprintf,fscanf时就会出现:“0x00403236”指令引用“0xcccccccc”内存。该内存不能为“written”。是内存出问题了,但不知道是程序哪里有问题啊!!!!!!!请帮帮忙,谢谢!!!我的程序如下:
#include
#include
#include
#define LEN sizeof(struct bookl)
struct bookl
{
long num;
char name[20];
float price;
char people[20];
char prass[20];
int yes;
struct booklist *next;
};
main() /*图书添加*/
{
struct bookl *bookment;
bookment=(struct bookl *)malloc(LEN);
FILE *fp;
fp=fopen("E:\\课程设计\\met.txt","r");
if(fp==NULL)
{
printf("error\n");
fp=fopen("E:\\课程设计\\met.txt","w");
}
else
{
fclose(fp);
fp=fopen("E:\\课程设计\\met.txt","a");
getchar();
printf("请输入编号:\n");
scanf("%ld",&bookment->num);
printf("请输入书名:\n");
scanf("%s",bookment->name);
printf("请输入出版社:\n");
scanf("%s",bookment->prass);
strcpy(bookment->people,"");
printf("请输入价格:\n");
scanf("%f",&bookment->price);
printf("请输入图书借阅状态:\n");
scanf("%d",&bookment->yes);
fwrite(bookment,sizeof(struct bookl),1,fp);
getchar();
fclose(fp);
}
}