C++报错:读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突

版权声明: 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;
}

 

猜你喜欢

转载自blog.csdn.net/shuiyixin/article/details/83064890