我们知道在定义指针变量的时候,如果没有初始化的话,这个指针变量的值是一个乱七八糟的值,而不是我们有的人想象的null值。事实上,要让指针变量成为null,仍需要显式赋值。
因此,从这个角度讲,指针是否初始化就不能直接判断指针变量的值是否为null了。但是既然不能这么判断,那又该怎么判断呢?比如我要做一个函数,其中一个参数就是指针,怎么对这个指针是否初始化进行判断呢?
谢谢
1
指针有没有初始化你编写程序的时候还不知道啊?
关于函数参数是指针时, 那么在调用这个函数时, 就有一个实参向形参赋值的过程. 这就是函数参数的初始化呀
2
我来告诉你吧,你看一下你的指针定义的地方是不是把它与一个变量的地址相连了啊!!
再就是你想定义指针了,就先想清楚它要指向谁,然后再用,不就避免了它乱指了吗/
3
--这是人家面试官问我的问题 :)
--问题在于指针不是写函数的人定义的怎么办?就说如果是多人合作开发的时候,你确实无法保证人家的指针已经初始化了啊?我需要在函数内部进行判断的
比如要实现void memmove(void * Destination,void * Source,site_t n)函数的话,怎么对两个指针参数进行检查呢?谢谢
4
无法检查传入的指针是否是指向有效地址的指针.
问题在于指针不是写函数的人定义的怎么办?
-----------------------------
这个就需要一个团队进行一些合作开发的规范.
比如要求定义指针时,必须进行初始化, 不用的指针必须置为NULL等, 就可用是否为NULL来判断指针是否有效了.
5
C自它生出来那天~~~就没有这个功能。
from:http://topic.csdn.net/t/20051102/15/4366912.html