本帖最后由 wooda 于 2020-7-6 14:40 编辑
各位,如果函数参数是个指针,但是有时候这个指针是null,大家认为代码是怎样的?
我的写法:
...
mail()
{unsigned char * p_arg;
...
p_arg=&value1;
if(xx)p_arg=NULL;
fun(p_arg);
...
}
void fun(unsigned char *parg)
{
....
if (parg!=NULL) //就是这里要判断
{
.... //代码A
}
}
然后发现代码A是执行了的。断点打到判断地方发现 parg=0x00,*parg=null
其中编译什么都没问题,其他值的话能正常操作
大家也是这样么?
-----更新-------------
不知道怎么回事,吧
if (parg!=NULL) //就是这里要判断
写成
if (parg!=0x00) //就是这里要判断
就可以了,只是这样程序的可读性差了点,哎。。。
|