帮我看看哪里出错了...
#include "stdio.h"#include "string.h"
#include "stdlib.h"
#define MAXSIZE 20
#define B 90
typedef struct xinxi
{
char m[MAXSIZE][B];
int rear ,front;
}Xinxi;
Xinxi *q; //创建结构体类型变量
struct Xinxi *init_xinxi()
{
q=(Xinxi *)malloc(sizeof(Xinxi));
q->front=0;
q->rear=0;
} //创建队列
int in_xinxi(char d[])
{
if (q->rear==MAXSIZE)
{
printf("信息存满,请删除后再存储!\n");
return 0;
}
else
{
strcpy(q->m[q->rear],d);
q->rear=q->rear+1;
return 1;
}
}
int read_xinxi()
{
if(q->front==q->rear)
{
printf("手机中没有信息\n");
return 0;
}
else
{
printf("%s\n",q->m[q->rear]);
return 1; //信息读取完成
}
}
void clear_xinxi()
{
q->front=0;
q->rear=0;
} //清空信息
main()
{
int i,j,opt,k;
char x[B];
i=j=0;
j=0;
init_xinxi(q);
while(1)
{
printf("========================\n");
printf("写信息请按1\n");
printf("读信息请按2\n");
printf("清空信息请按3\n");
printf("退出请按0\n");
printf("========================\n");
scanf("%d",&opt);
switch(opt)
{
case 1:
printf("请输入小于%d个字符的信息\n",B);
scanf("%s",x);
break;
case 2:
printf("以下是所有存储的信息\n");
read_xinxi();
break;
case 3:
printf("确定清空请按1\n");
scanf("%d",&k);
if (k==1)
clear_xinxi();
default:
exit(0);
}
}
}
//2的时候读取不了啊,请问哪里出错了??