野(wild)指针与悬空(dangling)指针有什么区别?如何避免?

野指针(wild pointer):就是没有被初始化过的指针。⽤
悬空指针:是指针最初指向的内存已经被释放了的⼀种指针。

编译, 会出现 used uninitialized 警告。

⽆论是野指针还是悬空指针,都是指向⽆效内存区域(这⾥的⽆效指的是"不安全不可控")的指针。 访问"不安全可控"(invalid)的内存区域将导致"Undefined Behavior"。
如何避免使⽤野指针?在平时的编码中,养成在定义指针后且在使⽤之前完成初始化的习惯或者使⽤智能指针。

posted @ 2022-07-09 10:52  萧海~  阅读(195)  评论(0编辑  收藏  举报