全部学习汇总: https://github.com/GreyZhang/c_basic

         其实,我现在的开发工作中基本上遇不到野指针,因为我现在开发产品中基本上没有使用存储的分配和释放过程。当然,这是除了局部变量的使用之外。

         野指针会存在什么常见的问题呢?通常,指针指向的内存空间可以进行存储的申请分配,但是通常来说分配还都会带着一个释放的过程。一般来说,为了保证软件的可靠,这个分配和释放都是成对的。如果一个指针通过存储的分配申请操作指向了一个位置,再释放之后其数值是不会发生变化的。这个过程发生变化的是什么呢?是其指向的存储区域,该区域被标记为了可以回收分配。这样,判断存储的有效性看指针的值就不是一个可取手段了。

         一个例子:

481_C语言野指针_经验分享

         我先把错误的操作给屏蔽掉了,这样软件编译之后运行效果:

481_C语言野指针_经验分享_02

         如果使用了上面的野指针,测试结果:

481_C语言野指针_经验分享_03

         编译运行效果:

481_C语言野指针_经验分享_04

         程序运行直接没有任何输出结果!