秦斩大魔王 2016-12-20 02:23 采纳率: 33.3%
浏览 1099
已结题

C语言队列的一个问题/

#include "stdafx.h"
#include
#include
#include
#include
#define MAX_SIZE 20
#define ADD_SIZE 2
#define LENGTH 15
#define FALSE -1
#define TRUE 1
typedef char QElemType;
typedef int Status;
typedef struct QNode {
QElemType data[LENGTH];
struct QNode *next;
}QNode, *QueuePtr;

typedef struct {
QueuePtr front;
QueuePtr rear;
int number;
}Message;
Status CreatMessageQueue(Message **m) {
if (((*m)->front = (QueuePtr)malloc(sizeof(QueuePtr))) == NULL)
return FALSE;
(*m)->rear = (*m)->front; //开始时为空队列
strcpy((*m)->front->data, "head"); //设立一个头元素
(*m)->front->next = NULL;
(*m)->number = 0; //标志设0

return  TRUE;

}

Status EnQueue(Message *m, char a[]) {
QueuePtr *p;

if ((p = (QueuePtr*)malloc(sizeof(QueuePtr))) == NULL);
return FALSE;
strcpy((*p)->data, a);
(*p)->next = NULL;
m->rear->next = (*p);
m->rear = (*p);
return TRUE;

}

char* OutMessage(Message *m) {
static char a[MAX_SIZE];
QueuePtr *p;
if (m->front->next == NULL)
return NULL;
(*p) = m->front->next;
m->front->next = (*p)->next;
if ((*p)->next == NULL)
m->rear = m->front;
strcpy(a, (*p)->data);
return a;
}

void FullDelet(Message *m, char a[]) {
if (m->number == 20) {
OutMessage(m);
m->number--;
}
EnQueue(m, a);
m->number++;
}

void DeletALL(Message *m) {
while (m->front != m->rear)
OutMessage(m);
m->number = 0;
}

void DeletONE(Message *m, int n) {//把m指向*m的地址传给P,用P来间接实现删除操作,一一遍历。
Message *p;
QueuePtr *s;
int i = 1;
p = m;
while (i {
p->front = p->front->next;
i++;
}
*s = p->front->next;
p->front->next = p->front->next->next;
free(*s);
m->number--;//删除后标志减一
}

void ShowAllMessage(Message *m) {
Message *p;
p = m;
while (p->front != m->rear)
{
p->front = p->front->next;
printf("%s\n", p->front->data);
}
printf("\n");
}

int main()
{
Message **m;
char a[LENGTH];
CreatMessageQueue(m);
for (int i = 0;i < 5;i++) {
EnQueue(*m, a);
for (int i = 0;i < 10;i++) {
scanf("%c", a[i]);
}
}

ShowAllMessage(*m);

}

就是这个程序,主程序我写的有错误,希望有人解释一下为什么在主程序进行到
CreatMessageQueue方法时报错,说我m未定义。

  • 写回答

6条回答 默认 最新

  • YXTS122 2016-12-20 02:34
    关注

    现在不在电脑前,有空在看哈

    评论

报告相同问题?

悬赏问题

  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程