首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

如何判断一个指针是否为野指针

2012-03-27 
怎么判断一个指针是否为野指针?这类似错误真是防不胜防啊[解决办法]这个。。。。怎么避免出现野指针就知道free

怎么判断一个指针是否为野指针?
这类似错误真是防不胜防啊

[解决办法]
这个。。。。
怎么避免出现野指针就知道
free或delete之后设置NULL

用C/C++的程序员只能说要细心了
[解决办法]
这是使用指针需要注意的地方
[解决办法]
这个只能是靠良好的编程习惯尽量预防出现野指针的情况,未雨绸缪而不是亡羊补牢。
对应特定编译器在一定情况下,是可以判断是否为野指针的,但以现在c++标准是不可能有一个统一的判断方式。
[解决办法]
这个要靠自己的经验了,平时在使用指针的时候就要注意这一点
[解决办法]
无法判断,一般的做法是把malloc和free包装以后使用,再加入适当的调试代码。可以参考:编写无错的C程序的秘诀的电子版。比如:free(p)包装一个函数:
void Free(void *p) {
if (p != NULL) {
free(p);
p = NULL;
}
}
至于malloc,一般的做法是分配size个字节的内存时,多分配一个调试用的结构体,然后把这些结构体做成链表,可以通过查看这个链表找到野指针。
[解决办法]
不容判断啊,野指针指向是不定的。
最好在free或者是delete后,把指针置为NULL
[解决办法]

探讨

这个。。。。
怎么避免出现野指针就知道
free或delete之后设置NULL

用C/C++的程序员只能说要细心了

[解决办法]
首先, 定义指针要初始化, 即使 = NULL; 

其次,分配后和使用前要检测,使用时不要越界

最后,释放后一定 = NULL;

注意你使用指针的 “副作用”,比如移动指针后,去free()....,
[解决办法]
探讨
首先, 定义指针要初始化, 即使 = NULL;

其次,分配后和使用前要检测,使用时不要越界

最后,释放后一定 = NULL;

注意你使用指针的 “副作用”,比如移动指针后,去free()....,

[解决办法]
只能避免,无法判断.

热点排行