有人可以指点一下吗 才开始学习线性表


#include <stdio.h>
#include <iostream.h>
#define listsize 50
typedef struct A{
int num[listsize];
int front;
int rear;
int s;
}list;
list shu;
list *p;
void Initnum(list *p)
{
p->front = 0;
p->rear = 0;
p->s = 0;
}
int main()
{
    int i;
    printf("输入数据");
    if(p->s==1&&(p->front==p->rear))
        printf("该队列已满");
    else
    {
        for(i=0;i<5;i++)
        {
            scanf("%d",&p->num[p->rear]);
            p->rear++;
            if(p->rear == listsize+1)
                  p->rear = 1;
                  p->s=1;
        }
    }
    if(p->s==0)
        printf("该队列为空");
    else
    {
        for(i=0;i<5;i++)
        {
            printf("%d",&p->num[p->front]);
            p->front++;
        }
        printf("输出完成");
    }
    return 0;

}

为什么这个没有报错,但是运行不了噢