C语言 大家快帮忙看看我的优先级队列问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 02:52:18
我这个程序可以输出队列,可是最后会提示NULL pointer assignment
谁能帮我看看呀,谢谢各位啦~~~~

#include "stdio.h"

typedef struct QNODE /*定义*/
{
int data;
int pri;
struct QNODE *next;
}QNODE,*queueptr;

typedef struct
{
queueptr front;
}linkqueue;

queueptr p[5]; /*P[5]为5个入口指针*/

void initqueue (linkqueue *q) /*建立PQ,申请5个插入点,输出队列时,跳过PRI为0的节点,*/
{
int i;
q->front=(queueptr)malloc(sizeof(QNODE));
if (!q->front) printf ("overflow\n");
for (i=1;i<=5;i++)
{
p[i]=(queueptr)malloc(sizeof(QNODE));
p[i]->pri=0;
p[i]->data=10;
}
q->front->next=p[5];
for (i=5;i>1;i--)
p[i]->next=p[i-1];
p[1]->next=NULL;
printf ("建表成功\n");
}
int outqueue (linkqueu

呵呵,是个小错误。。

queueptr p[5]; /*P[5]为5个入口指针*/

这是从 0---4 的五个数组元素。。不存在 p[5]
只有p[0]到 p[4]
后面的程序频繁的使用了p[5],因此出现指针错误的提醒。。

改改看哦……

只要输出正确就没关系,我也遇到过类似情况:输出正确结果并且还有一行NULL pointer assignment ,老师说没关系NULL pointer assignment是零指针任务的意思

电脑/网络/C/C