版权声明: https://blog.csdn.net/shuiyixin/article/details/83064890
问题截图
问题来源
写队列程序时,分配内存空间时报错。
Q->front = Q->rear = (QueuePtr)malloc(sizeof(QNode));
解决方案
修改Q 的类型,去掉*,不设置指针类型。修改后代码如下:
typedef struct QNode {
char data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct LinkQueue {
QueuePtr front;
QueuePtr rear;
}LinkQueue;
int InitQueue(LinkQueue &Q) {
Q.front = Q.rear = (QueuePtr)malloc(sizeof(QNode));
if (!Q.front)
{
cout << "空间分配失败" << endl;
exit(OVERFLOW);
}
Q.front = NULL;
return 1;
}