Skip to content

Latest commit

 

History

History
9 lines (5 loc) · 699 Bytes

File metadata and controls

9 lines (5 loc) · 699 Bytes

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

野指针(wild pointer):就是没有被初始化过的指针。⽤ gcc -Wall 编译, 会出现 used uninitialized 警告。

悬空指针:是指针最初指向的内存已经被释放了的⼀种指针。

无论野指针还是悬空指针,都是指向⽆效内存区域(这⾥的⽆效指的是"不安全不可控")的指针。 访问"不安全可控"(invalid)的内存区域将导致"Undefined Behavior" 。

如何避免使用野指针? 在平时的编码中,养成在定义指针后且在使⽤之前完成初始化的习惯或者使⽤智能指针。