问答详情
源自:3-6 链表编码实战(四)

插入链表问题

请问老师:传入 *Pnode不能直接使用吗,为什么每次都要先New node;

可以写成:pNode->Next = currentNode->next;    

              currentNode->next =pNode;

这样写正确吗?不正确为什么?

提问者:钴铬金属 2016-12-09 15:59

个回答

  • kinpowoo
    2016-12-10 21:08:19

    老师是这么说的,比如你要在主文件的函数中调用插入节点的函数,在主文件的函数中声明一个Node node对象,一般在函数中申请变量都是在栈中申请,不会在堆中,在栈中申请的对象在函数执行完成后就销毁了,可以节约内存资源。这时你把这个node对象的地址传入插入节点的函数中,插入节点函数只需要拿到这个node对象中的值,然后自己去堆中申请内存。  如果你直接引用传进来的node对象,这个对象在外面函数执行完成后被系统销毁了,刚插入的值不复存在,就会引发错误,