如果在自定义函数里面new的指针,函数返回前没有delete,指针是没有了,但指针指向的内存不会被释放,所以不会出现野指针,但会造成内存泄漏。这样使用指针是不规范的。可能书上的例子比较短小,这个问题不容易暴露出来,使结果看上去一切正常。
也不会产生野指针 如果没有申请内存,或者申请内存后,传到主调函数,在其它地方释放,就不会产生内存泄露 链表删除的时候 free(p)就好。 这个就是释放内存 一般被释放的 没必要赋值为NULL 删除节点的时候 重要的是把前驱的next赋值为NULL 否则就是 野指针了。
不用 && 不能 malloc 和free 对应使用.
之所以使用链表头head,目的是为了操作链表方便。head是一个特殊的结点(不是指针),其数据域不使用,尤其在双向链表中,head必须是一个结点,而不能是指针。
求助,没有a=&am..不可以,*a=b是令a指向的空间保存b值,不是令a指向b。另外a是野指针,本身也没有指向一片确定的内存。我试了下,编译能通过,但是运行时卡了一会之后主程序就退出了,显然是进行了非法的内存操作
可以不初始化,但好的习惯还是在指针声明时即初始化为空。
的值是什么 其实没什么关系了 也不会产生 野指针 如果没有申请内存,或者申请内存后,传到主调函数,在其它地方释放,就不会产生 内存泄露 链表 删除的时候 free(p)就好。这个就是 释放内存 一般被释放的 没必要赋值为NULL 删除节点的时候 重要的是把前驱的next赋值为NULL 否则就是 野指针了。