我们可以不理会这个告警,并且继续运行程序,但是“str2”在定义时没有给初值,是一个野指针,程序运行的结果可能是非常可怕的。我们程序中的这两行代码注释掉,然后运行程序,看看str2输出的值是多少。图3 其他程序的重要数据被改写为了防止野指针带来的灾难,建议指针在定义时给一个初值,比如“NULL”,意思是不指向任何内存地址。然后再使用malloc函数给指针分配一块存储空间。修改的程序如图4所示:图4 避免野指针的改法程序在定义str2时赋予初值“NULL”,这样str2就不会指向任何内存。程序的最后,再主动释放掉这段内存区域,让str2再次不指向任何区域。

C程序中可怕的野指针图文详解

C程序中可怕的野指针图文详解

C程序中可怕的野指针图文详解