出现错误表达式必须是指向完整对象类型的指针
//room.h
#include<stdio.h>
struct room
{
int roomnum;
int price;
int people;
};
void room();
extern struct room;
//room.c
#include<stdio.h>
#include"room.h"
void room()
{
struct room room[6];
int i;
for (i = 0; i < 6; i++)
{
room[i].people = 0;
room[i].price = 200;
room[i].roomnum = 100 + i;
}
FILE * fproom;
fproom = fopen("room", "wb");
for (i = 0; i < 6; i++)
{
fwrite(&room[i], sizeof(struct room), 1, fproom);
}
fclose(fproom);
}
//in.h
#include<stdio.h>
#include"room.h"
struct customer
{
char name[20];
char sex[6];
int num;
int phone;
int room;
};
void in();
//in.c
#include<stdio.h>
#include"room.h"
#include"in.h"
void in()
{
int i;
struct customer customer[6];
for (i = 0;; i++)
{
if (customer[i].name[0] == '\0')
break;
}
printf("请输入身份证号:");
scanf("%d", &customer[i].num);
printf("请输入姓名:");
scanf("%s", &customer[i].name);
printf("请输入性别:");
scanf("%d", &customer[i].phone);
printf("请输入联系方式:");
scanf("%d", &customer[i].phone);
FILE * fproom;
fproom = fopen("room", "wb");
for (i = 0; i < 6; i++)
{
fread(&room[i], sizeof(struct room), 1, fproom);
}
}
以上是部分代码,红色是出错部分,求解为什么,不懂怎么解决,刚开始接触这部分。