写了这样一段代码,第4、5行报错:
C6011:取消对NULL指针的引用
void EnQueue(LinkQueue& Q, ElemType x) {
LinkNode* s = (LinkNode*)malloc(sizeof(LinkNode));
s->data = x;
s->next = NULL;
Q.rear->next = s;
Q.rear = s;
}
发现是没有进行空指针的判断。
于是改为如下代码,报错消失:
void EnQueue(LinkQueue& Q, ElemType x) {
LinkNode* s = (LinkNode*)malloc(sizeof(LinkNode));
if (!s)cout << "Invalid value!" << endl; // 判断空指针
else s->data = x;
Q.rear->next = s;
Q.rear = s;
}