关于指针赋初值为NULL的问题因为NULL本质就是0,则,一个指针变量的值为0,意味着它指向整个内存的最开始字节处,而这个地方是用户程序(APP)的禁区,不能访问,如果强行访问,则,将被OS禁止并中断这个进程执行(程序被中断)。 上述说法,不能说指针的值不能为NULL,只是说,不能对0编号开始的空间进行“访问”。即,可以令指针指向0编号区域,只要不访问就没有问题。 【软件工程】建议所有的变量(尤其是局部变量)都应该初始化为0(NULL)。这里,对于指针变量初始化为NULL的目的在于:区分垃圾数据! int *p; int x; … if(x > 0) p = (int *)malloc(…); x = …; … // 在此处,无法识别p是否已经指向一段申请了的空间! if(p是否指向了有效空间) 此时无法判断p是否指向了有效空间,为此,需要进行如下调整: int *p = NULL; int x; … if(x > 0) p = (int *)malloc(…); x = …; … if(p == NULL) // p没有指向有效空间 else // p指向了有效空间 |
关于指针赋初值为NULL的问题
猜你喜欢
转载自blog.csdn.net/weixin_42072280/article/details/82949941
今日推荐
周排行