VS报错C6011:取消对NULL指针的引用 解决方法

写了这样一段代码,第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;
}

你可能感兴趣的:(c++)