一直报错 救救孩子吧
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#define MAXQSIZE 10
typedef struct {
char** base;
int front;
int rear;
}SqQueue;
int INITQueue(SqQueue* Q);
int EnQueue(SqQueue* Q);
int Delete(SqQueue* Q, char* ch);
void Show(SqQueue* Q);
int main()
{
char* ch = 0;
int number = 0;
SqQueue Q;
printf("请输入你需要的操作步骤");
scanf_s("%d", &number);
printf("%d", number);
INITQueue(&Q);
switch (number)
{
case 1:
printf("排队\n");
EnQueue(&Q);
break;
case 2:
printf("售票\n");
Delete(&Q, ch);
break;
case 3:
printf("查看队列\n");
Show(&Q);
break;
case 4:
exit(0);
default:
printf("ERROR!");
}
}
int INITQueue(SqQueue* Q)
{
char** p;
int i;
Q->front = Q->rear = 0;
if (NULL == (p = (char**)malloc(MAXQSIZE * sizeof(char*))))
return 0;
for (i = 0; i < MAXQSIZE; i++)
{
if (NULL == (p[i] = (char*)malloc(MAXQSIZE * sizeof(char))))
return 0;
}
}
int EnQueue(SqQueue* Q)
{
if ((Q->rear + 1) % MAXQSIZE == Q->front)
{
printf("排队不成功!");
return 0;
}
printf("请输入姓名");
scanf_s("%s", Q->base[Q->rear]);
Q->rear = (Q->rear + 1) % MAXQSIZE;
return 1;
}
int Delete(SqQueue* Q, char* ch)
{
char str[MAXQSIZE][MAXQSIZE];
if (Q->rear = Q->front)
{
printf("出票失败!");
return 0;
}
memcpy(ch, Q->base[Q->front], MAXQSIZE);
Q->front = (Q->front + 1) % MAXQSIZE;
return 1;
}
void Show(SqQueue* Q)
{
for (int i = 0; i < (Q->rear - Q->front + MAXQSIZE) % MAXQSIZE; i++)
{
printf("%s", Q->base[i]);
}
}