指针未初始化就访问会导致crash!
指针初始不赋值为NULL,可能是任意值!就好比 int float 这类基础变量未初始化为0,就可能是任意值!
string 用char *类型初始化的时候要保证不是空指针或者未赋值的指针
C语言规范没有要求指针必须初始化,有的编译器实现会给个警告,有的直接编译过。
定义指针后可以不初始化,但实际上这个指针变量中已经有一个值了(就是分给这个指针变量的地方内存中原来的值,假设是0x1234)。
但是用前一定要初始化,否则就是用去操作0x1234这个地方的内容,就会出问题,因为你并不知道把0x1234作为地址,所指向的地方是什么东西,可能是段系统代码,那么你的code就会搞挂系统。有时候对这个地方操作也可以工作(大部分情况都是的),但放到其他系统上去跑就会出问题,或者不小心写了个边界情况(可能是无意的),这样的话也会出问题