原代码
typedef int DataType;
typedef struct {
DataType* a;
int front;//队头(元素对应的下标)
int rear;//队尾(元素对应的下标)
int capacity;//队列长度
} MyCircularQueue;
//构造器,设置队列长度为 k 。
MyCircularQueue* myCircularQueueCreate(int k) {
MyCircularQueue* obj = (MyCircularQueue*)malloc(sizeof(MyCircularQueue));
if (!obj)
{
perror("MyCircularQueue malloc fail");
exit(-1);
}
obj->a = (int*)malloc(sizeof(int)*(k+1));
obj->capacity = k;
obj->front = obj->rear = 0;
return obj;
}
报错
- 引发了异常: 写入访问权限冲突。
obj->a = (int*)malloc(sizeof(int)*(k+1));
⭐检查:
- malloc是不是开辟空间对象错了?
- 数组是不是越界了?
结果是👇
没有引用头文件!
#include <stdlib.h>