#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct queue{
int* front;
int* back;
}QUEUE,*PQUEUE;
void creatqueue(PQUEUE pqueue,int size);
void addqueue(PQUEUE pqueue,int number);
int exitqueue(PQUEUE pqueue);
int main()
{
QUEUE test;
PQUEUE ptest=&test;
creatqueue(ptest,2);
addqueue(ptest,5);
addqueue(ptest,8);
printf("%d\n",exitqueue(ptest));
printf("%d",exitqueue(ptest));
return 0;
}
//创建循环队列 ,参数1为队列结构体变量地址,参数2为队列长度。返回值为队列指针
void creatqueue(PQUEUE pqueue,int size)
{
//if(NULL==(pqueue->front=pqueue->back=(int*)calloc(size,sizeof(int))))
if(NULL==(pqueue->front=pqueue->back=(int*)malloc(size*sizeof(int))))
exit(-1);
}
//入队操作 ,参数一为队列结构体变量地址,参数二为要入队的数
void addqueue(PQUEUE pqueue,int number)
{
*(pqueue->front)=number;
pqueue->front++;
}
//出队操作 ,参数一为队列结构体指针
int exitqueue(PQUEUE pqueue)
{
int data=*(pqueue->back);
pqueue->back++;
return data;
}
上段程序正常运行,可是开始的时候
QUEUE test;
PQUEUE ptest=&test;
这两句为
PQUEUE ptest;
程序老是死掉,不知道为何?