c队列与结构体问题



#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;

程序老是死掉,不知道为何?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值