这是个链表插入的代码,这个时候,第九行会报未初始化变量enterP 是为什么?

Node *Linklist::insert(Node *head, int num)
{
    Node *prev;
    prev = head;
    for (int i = 1; i < num; ++i)
    {
        prev = prev ->next;
    }
    Node *enterP;
    enterP ->data = 66;
    enterP->next = prev->next;
    prev ->next = enterP;

    return head ->next;
}

这是个链表插入的代码,这个时候,第九行会报未初始化变量enterP 是为什么?

img

但是当我把第九行改成这样的时候就行了

    Node *enterP = new Node;

这个时候就不报的,为什么啊?

Node *enterP; //指针要分配空间以后才能赋值啊。所以必须加上 new Node;
enterP ->data = 66;