读书人

当链表中中next指针被delete掉后还可以

发布时间: 2013-10-07 19:41:22 作者: rapoo

当链表中中next指针被delete掉后还可以再new吗?
我设计了一个链表,程序运行中按一个键销毁最后一个结构体,并将倒数第二个结构体的nextdelete掉,此时我想对这个delete掉的指针进行new,即在最后一个结构体后面链上一个结构体,结果出现断点,请问可以new吗?如果不行的话,应该如何解决呢。 指针 链表
[解决办法]
准确的说, delete p 这个语句,释放的是 p 指向的那块内存区域。
p 本身就是一个指针,它可以指向新的区域,所以 p = new Node() 是没问题的。
[解决办法]
delete只是delete掉了指针所指的分配的内存,并没有将指针释放,当然可以进行重新new了
[解决办法]
new 运算 有一个结果,记一个指针
delete 后,指针还是指向被delete 的指针所指的位置
只有 赋值为0,或者重新 new 一下,结果赋值给那个指针,

才可以保证这个指针有一个确定值,
而不会成为野指针。

出现错误,应该是代码有错误,未必是你所讲的这个位置。
从你的帖子里看不出,错误在哪。

如果想知道,为什么错误,上代码。

如果想讨论,这种情况如何处理,

搜一下,链表,先看别人如何处理,然后在说说你的看法。
才好讨论。
[解决办法]
delete掉的当然可以new,只要注意内存泄露问题就好!
谁new的,对应起来delete释放就好,当然新new的空间地址可能不是同一个而已!

读书人网 >C++

热点推荐