Merge pull request #1940 from 1511351836/master

完善0707.设计链表C++版本,在delete指针之后赋值为null,在注释中说明了野指针问题
This commit is contained in:
程序员Carl 2023-03-19 10:49:06 +08:00 committed by GitHub
commit 8b9f29af0d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 0 deletions

View File

@ -133,6 +133,11 @@ public:
LinkedNode* tmp = cur->next; LinkedNode* tmp = cur->next;
cur->next = cur->next->next; cur->next = cur->next->next;
delete tmp; delete tmp;
//delete命令指示释放了tmp指针原本所指的那部分内存
//被delete后的指针tmp的值地址并非就是NULL而是随机值。也就是被delete后
//如果不再加上一句tmp=nullptr,tmp会成为乱指的野指针
//如果之后的程序不小心使用了tmp会指向难以预想的内存空间
tmp=nullptr;
_size--; _size--;
} }
@ -1450,3 +1455,4 @@ impl MyLinkedList {
<a href="https://programmercarl.com/other/kstar.html" target="_blank"> <a href="https://programmercarl.com/other/kstar.html" target="_blank">
<img src="../pics/网站星球宣传海报.jpg" width="1000"/> <img src="../pics/网站星球宣传海报.jpg" width="1000"/>
</a> </a>